home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / compile_to_c31.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  85.6 KB  |  2,816 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_c.h"
  9. /*No:CALL_N.arguments*/
  10. T0* r915add_comment(T915* C,T0* a1){
  11. T0* R=NULL;
  12. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  13. R=(T0*)C;
  14. }
  15. else {
  16. {T529*n=malloc(sizeof(*n));
  17. *n=M529;
  18. r529make(n,(T0*)C,a1);
  19. R=(T0*)n;
  20. }
  21. }
  22. /*FI*/return R;
  23. }
  24. int r915to_integer(T915* C){
  25. int R=0;
  26. r915error(r915start_position(C),((T0*)ms69_470));
  27. return R;
  28. }
  29. int r915is_a(T915* C,T0* a1){
  30. int R=0;
  31. R=X291is_a(X291run_type((((T915*)C))->_result_type/*24*/),X291run_type(X662result_type(a1)));
  32. /*IF*/if (!(R)) {
  33. r683add_position(r915start_position(C));
  34. r915error(X662start_position(a1),((T0*)ms4_662));
  35. }
  36. /*FI*/return R;
  37. }
  38. /*No:CALL_N.fz_bad_arguments*/
  39. /*No:CALL_N.is_current*/
  40. void r915mapping_c_arg(T915* C,T0* a1){
  41. T0* _actual_type=NULL;
  42. _actual_type=X291run_type((((T915*)C))->_result_type/*24*/);
  43. /*IF*/if (X291is_reference(_actual_type)) {
  44. /*IF*/if (X291is_reference(a1)) {
  45. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T915* C1=C;
  46. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  47. }/*]*/
  48. /*]*/
  49. }
  50. else {
  51. X291to_expanded(_actual_type);
  52. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  53. char b1='\50';
  54. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  55. }/*]*/
  56. /*]*/
  57. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T915* C1=C;
  58. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  59. }/*]*/
  60. /*]*/
  61. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  62. char b1='\51';
  63. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  64. }/*]*/
  65. /*]*/
  66. }
  67. /*FI*/}
  68. else {
  69. /*IF*/if (X291is_reference(a1)) {
  70. X291to_reference(_actual_type);
  71. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  72. char b1='\50';
  73. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  74. }/*]*/
  75. /*]*/
  76. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T915* C1=C;
  77. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  78. }/*]*/
  79. /*]*/
  80. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  81. char b1='\51';
  82. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  83. }/*]*/
  84. /*]*/
  85. }
  86. else {
  87. /*IF*/if (X291need_c_struct(a1)) {
  88. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  89. char b1='\46';
  90. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  91. }/*]*/
  92. /*]*/
  93. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  94. char b1='\50';
  95. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  96. }/*]*/
  97. /*]*/
  98. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T915* C1=C;
  99. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  100. }/*]*/
  101. /*]*/
  102. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  103. char b1='\51';
  104. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  105. }/*]*/
  106. /*]*/
  107. }
  108. else {
  109. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T915* C1=C;
  110. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  111. }/*]*/
  112. /*]*/
  113. }
  114. /*FI*/}
  115. /*FI*/}
  116. /*FI*/}
  117. /*No:CALL_N.static_value*/
  118. void r915make(T915* C,T0* a1,T0* a2,T0* a3){
  119. C->_target=a1;
  120. C->_feature_name=a2;
  121. C->_arguments=a3;
  122. }
  123. void r915mapping_c_target(T915* C,T0* a1){
  124. T0* _actual_type=NULL;
  125. int _flag=0;
  126. _flag=r324call_invariant_start(a1);
  127. _actual_type=X291run_type((((T915*)C))->_result_type/*24*/);
  128. /*IF*/if (X291is_reference(_actual_type)) {
  129. /*IF*/if (X291is_reference(a1)) {
  130. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  131. char b1='\50';
  132. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  133. }/*]*/
  134. /*]*/
  135. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  136. char b1='\50';
  137. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  138. }/*]*/
  139. /*]*/
  140. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  141. char b1='T';
  142. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  143. }/*]*/
  144. /*]*/
  145. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
  146. /*]*/
  147. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  148. char b1='\52';
  149. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  150. }/*]*/
  151. /*]*/
  152. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  153. char b1='\51';
  154. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  155. }/*]*/
  156. /*]*/
  157. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  158. char b1='\50';
  159. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  160. }/*]*/
  161. /*]*/
  162. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T915* C1=C;
  163. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  164. }/*]*/
  165. /*]*/
  166. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  167. char b1='\51';
  168. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  169. }/*]*/
  170. /*]*/
  171. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  172. char b1='\51';
  173. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  174. }/*]*/
  175. /*]*/
  176. }
  177. else {
  178. X291to_expanded(_actual_type);
  179. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  180. char b1='\50';
  181. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  182. }/*]*/
  183. /*]*/
  184. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T915* C1=C;
  185. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  186. }/*]*/
  187. /*]*/
  188. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  189. char b1='\51';
  190. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  191. }/*]*/
  192. /*]*/
  193. }
  194. /*FI*/}
  195. else {
  196. /*IF*/if (X291is_reference(a1)) {
  197. X291to_reference(_actual_type);
  198. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  199. char b1='\50';
  200. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  201. }/*]*/
  202. /*]*/
  203. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T915* C1=C;
  204. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  205. }/*]*/
  206. /*]*/
  207. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  208. char b1='\51';
  209. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  210. }/*]*/
  211. /*]*/
  212. }
  213. else {
  214. /*IF*/if (X291need_c_struct(a1)) {
  215. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  216. char b1='\46';
  217. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  218. }/*]*/
  219. /*]*/
  220. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  221. char b1='\50';
  222. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  223. }/*]*/
  224. /*]*/
  225. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T915* C1=C;
  226. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  227. }/*]*/
  228. /*]*/
  229. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  230. char b1='\51';
  231. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  232. }/*]*/
  233. /*]*/
  234. }
  235. else {
  236. /*[IRF3.4compile_to_c*//*[IRF3.6call_proc_call_c2c*/{T915* C1=C;
  237. r324put_cpc(((T324*)(oBC364cpp)),(T0*)C1);
  238. }/*]*/
  239. /*]*/
  240. }
  241. /*FI*/}
  242. /*FI*/}
  243. /*FI*//*IF*/if (_flag) {
  244. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  245. char b1='\51';
  246. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  247. }/*]*/
  248. /*]*/
  249. }
  250. /*FI*/}
  251. /*No:CALL_N.nb_errors*/
  252. /*No:CALL_N.feature_name*/
  253. /*No:CALL_N.fz_iinaiv*/
  254. int r915arg_count(T915* C){
  255. int R=0;
  256. R=X431count((((T915*)C))->_arguments/*28*/);
  257. return R;
  258. }
  259. /*No:CALL_N.dca_inline_argument*/
  260. /*No:CALL_N.run_feature*/
  261. /*No:CALL_N.call_proc_call_c2c*/
  262. T0* r915start_position(T915* C){
  263. T0* R=NULL;
  264. R=X776start_position((((T915*)C))->_feature_name/*16*/);
  265. return R;
  266. }
  267. /*No:CALL_N.target*/
  268. /*No:CALL_N.compile_to_c*/
  269. /*No:CALL_N.c_simple*/
  270. T0* r915to_runnable(T915* C,T0* a1){
  271. T0* R=NULL;
  272. T0* _e=NULL;
  273. T0* _tla=NULL;
  274. T0* _a=NULL;
  275. /*IF*/if (((((T915*)C))->_current_type/*8*/)==((void*)(NULL))) {
  276. r915to_runnable_0(C,a1);
  277. _a=X431to_runnable((((T915*)C))->_arguments/*28*/,a1);
  278. /*IF*/if ((_a)==((void*)(NULL))) {
  279. r915error(X431start_position((((T915*)C))->_arguments/*28*/),((T0*)ms56_470));
  280. }
  281. else {
  282. C->_arguments=_a;
  283. }
  284. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  285. X431match_with((((T915*)C))->_arguments/*28*/,(((T915*)C))->_run_feature/*20*/);
  286. }
  287. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  288. _tla=(((T915*)C))->_result_type/*24*/;
  289. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  290. case 239: 
  291. break;
  292. default:
  293. _tla=NULL;
  294. };/*IF*/if ((_tla)!=((void*)(NULL))) {
  295. _e=X431expression((((T915*)C))->_arguments/*28*/,/*(IRF4.6rank*/(((T886*)((T886*)((((T239*)((T239*)_tla)))->_like_what/*12*/))))->_rank/*20*//*)*/);
  296. C->_result_type=X291run_type(X662result_type(_e));
  297. }
  298. /*FI*/}
  299. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  300. R=(T0*)C;
  301. }
  302. /*FI*/}
  303. else {
  304. R=r915twin(C);
  305. /*[IRF3.3set_current_type*/((((T915*)(((T915*)R))))->_current_type)=(NULL);
  306. /*]*/
  307. R=r915to_runnable(((T915*)R),a1);
  308. }
  309. /*FI*/return R;
  310. }
  311. /*No:CALL_N.result_type*/
  312. /*No:CALL_N.is_result*/
  313. T0* r915twin(T915* C){
  314. T0* R=NULL;
  315. R=malloc(sizeof(*C));
  316. *((T915*)R)=*C;
  317. return R;
  318. }
  319. /*No:CALL_N.set_current_type*/
  320. /*No:CALL_N.is_static*/
  321. int r915call_is_static(T915* C){
  322. int R=0;
  323. T0* _rf=NULL;
  324. T0* _running=NULL;
  325. T0* _rc=NULL;
  326. /*IF*/if (((((T915*)C))->_run_feature/*20*/)!=((void*)(NULL))) {
  327. _rc=X496run_class((((T915*)C))->_run_feature/*20*/);
  328. /*IF*/if ((_rc)!=((void*)(NULL))) {
  329. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  330. /*IF*/if (((_running)!=((void*)(NULL)))&&((r396count(((T396*)_running)))==(1))) {
  331. _rf=r355dynamic(((T355*)(r396first(((T396*)_running)))),(((T915*)C))->_run_feature/*20*/);
  332. /*IF*/if (X496is_static(_rf)) {
  333. C->_static_value_mem=X496static_value_mem(_rf);
  334. R=1;
  335. }
  336. /*FI*/}
  337. /*FI*/}
  338. /*FI*/}
  339. /*FI*/return R;
  340. }
  341. /*No:CALL_N.fz_07*/
  342. /*No:CALL_N.can_be_dropped*/
  343. /*No:CALL_N.current_type*/
  344. void r915compile_to_c_old(T915* C){
  345. X662compile_to_c_old((((T915*)C))->_target/*12*/);
  346. /*IF*/if ((r915arg_count(C))>(0)) {
  347. X431compile_to_c_old((((T915*)C))->_arguments/*28*/);
  348. }
  349. /*FI*/}
  350. /*No:CALL_N.static_value_mem*/
  351. /*No:CALL_N.is_manifest_string*/
  352. /*No:CALL_N.is_void*/
  353. void r915to_runnable_0(T915* C,T0* a1){
  354. C->_current_type=a1;
  355. r915cpc_to_runnable(C,a1);
  356. C->_result_type=/*X496*/((T0*)(((T832*)((T832*)((((T915*)C))->_run_feature/*20*/))))->_result_type/*24*/);
  357. /*IF*/if (((((T915*)C))->_result_type/*24*/)==((void*)(NULL))) {
  358. r683add_position(X496start_position((((T915*)C))->_run_feature/*20*/));
  359. r915error(X776start_position((((T915*)C))->_feature_name/*16*/),((T0*)ms1_295));
  360. }
  361.  else if (X291is_like_current((((T915*)C))->_result_type/*24*/)) {
  362. C->_result_type=X662result_type((((T915*)C))->_target/*12*/);
  363. }
  364. /*FI*/}
  365. /*No:CALL_N.is_pre_computable*/
  366. void r915cpc_to_runnable(T915* C,T0* a1){
  367. T0* _rc=NULL;
  368. T0* _t=NULL;
  369. _t=X662to_runnable((((T915*)C))->_target/*12*/,a1);
  370. /*IF*/if ((_t)==((void*)(NULL))) {
  371. r683add_position(X662start_position((((T915*)C))->_target/*12*/));
  372. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_135);
  373. r683fatal_error(((T683*)(oBC364eh)),b1);
  374. }/*]*/
  375. }
  376. /*FI*/C->_target=_t;
  377. _rc=X291run_class(X662result_type((((T915*)C))->_target/*12*/));
  378. C->_run_feature=r355get_rf(((T355*)_rc),(T0*)C);
  379. r576update((((T915*)C))->_target/*12*/,(((T915*)C))->_run_feature/*20*/);
  380. }
  381. int r915use_current(T915* C){
  382. int R=0;
  383. /*IF*/if ((r915arg_count(C))>(0)) {
  384. R=X431use_current((((T915*)C))->_arguments/*28*/);
  385. }
  386. /*FI*//*IF*/if (R) {
  387. }
  388.  else if (X662is_current((((T915*)C))->_target/*12*/)) {
  389. R=X496use_current((((T915*)C))->_run_feature/*20*/);
  390. }
  391. else {
  392. R=X662use_current((((T915*)C))->_target/*12*/);
  393. }
  394. /*FI*/return R;
  395. }
  396. void r915finalize(T915* C){
  397. T0* _rf=NULL;
  398. T0* _rc=NULL;
  399. _rf=(((T915*)C))->_run_feature/*20*/;
  400. _rc=X291run_class(/*X496*/((T0*)(((T832*)((T832*)_rf)))->_current_type/*4*/));
  401. /*IF*/if (!((((T355*)((T355*)_rc)))->_at_run_time/*8*/)) {
  402. _rf=r355dynamic(((T355*)(r396first(((T396*)((((T355*)((T355*)_rc)))->_running/*12*/))))),_rf);
  403. C->_run_feature=_rf;
  404. }
  405. /*FI*/}
  406. void r915error(T0* a1,T0* a2){
  407. r683add_position(a1);
  408. r683error(((T683*)(oBC364eh)),a2);
  409. }
  410. /*No:CALL_N.isa_dca_inline_argument*/
  411. /*No:CALL_N.fatal_error*/
  412. void r915afd_check(T915* C){
  413. T0* _running=NULL;
  414. T0* _rc=NULL;
  415. _rc=X291run_class(X662result_type((((T915*)C))->_target/*12*/));
  416. _running=(((T355*)((T355*)_rc)))->_running/*12*/;
  417. /*IF*/if ((_running)==((void*)(NULL))) {
  418. r683add_position(X662start_position((((T915*)C))->_target/*12*/));
  419. /*[IRF3.6append*/{T0* b1=((T0*)ms1_135);
  420. r7append(((T7*)(oBC683explanation)),b1);
  421. }/*]*/
  422. /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T355*)((T355*)_rc)))->_current_type/*0*/);
  423. r7append(((T7*)(oBC683explanation)),b1);
  424. }/*]*/
  425. /*[IRF3.6append*/{T0* b1=((T0*)ms141_470);
  426. r7append(((T7*)(oBC683explanation)),b1);
  427. }/*]*/
  428. r683print_as_warning(((T683*)(oBC364eh)));
  429. r355set_at_run_time(((T355*)_rc));
  430. }
  431.  else if ((r396count(((T396*)_running)))>(0)) {
  432. r576update((((T915*)C))->_target/*12*/,(((T915*)C))->_run_feature/*20*/);
  433. }
  434. /*FI*/X662afd_check((((T915*)C))->_target/*12*/);
  435. /*IF*/if ((r915arg_count(C))>(0)) {
  436. X431afd_check((((T915*)C))->_arguments/*28*/);
  437. }
  438. /*FI*/}
  439. void r999error_comparison(T999* C,T0* a1){
  440. r683add_position((((T454*)((T454*)((((T999*)C))->_feature_name/*28*/))))->_start_position/*8*/);
  441. /*[IRF3.6append*/{T0* b1=((T0*)ms7_841);
  442. r7append(((T7*)(oBC683explanation)),b1);
  443. }/*]*/
  444. /*[IRF3.6append*/{T0* b1=a1;
  445. r7append(((T7*)(oBC683explanation)),b1);
  446. }/*]*/
  447. /*[IRF3.6append*/{T0* b1=((T0*)ms8_841);
  448. r7append(((T7*)(oBC683explanation)),b1);
  449. }/*]*/
  450. r683add_type((((T999*)C))->_current_type/*8*/,((T0*)ms67_470));
  451. r683print_as_error(((T683*)(oBC364eh)));
  452. }
  453. /*No:CALL_INFIX_EQ.arguments*/
  454. T0* r999add_comment(T999* C,T0* a1){
  455. T0* R=NULL;
  456. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  457. R=(T0*)C;
  458. }
  459. else {
  460. {T529*n=malloc(sizeof(*n));
  461. *n=M529;
  462. r529make(n,(T0*)C,a1);
  463. R=(T0*)n;
  464. }
  465. }
  466. /*FI*/return R;
  467. }
  468. int r999to_integer(T999* C){
  469. int R=0;
  470. r999error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T999*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  471. return R;
  472. }
  473. int r999is_a(T999* C,T0* a1){
  474. int R=0;
  475. R=X291is_a(X291run_type((((T999*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  476. /*IF*/if (!(R)) {
  477. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T999*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  478. r999error(X662start_position(a1),((T0*)ms4_662));
  479. }
  480. /*FI*/return R;
  481. }
  482. void r999cmp_bit(T999* C,int a1,T0* a2){
  483. T0* _tb=NULL;
  484. _tb=a2;
  485. if(NULL!=(_tb))switch(((T0*)_tb)->id) {
  486. case 549: case 558: 
  487. break;
  488. default:
  489. _tb=NULL;
  490. };/*IF*/if (X609is_c_unsigned_ptr(_tb)) {
  491. /*IF*/if (a1) {
  492. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  493. char b1='\41';
  494. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  495. }/*]*/
  496. /*]*/
  497. }
  498. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms12_841));
  499. /*]*/
  500. X662mapping_c_arg((((T999*)C))->_target/*12*/,a2);
  501. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms13_841));
  502. /*]*/
  503. X662mapping_c_arg(r999arg1(C),a2);
  504. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms14_841));
  505. /*]*/
  506. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X609space_for_variable(_tb));
  507. /*]*/
  508. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms15_841));
  509. /*]*/
  510. }
  511. else {
  512. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  513. char b1='\50';
  514. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  515. }/*]*/
  516. /*]*/
  517. X662compile_to_c((((T999*)C))->_target/*12*/);
  518. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  519. char b1='\51';
  520. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  521. }/*]*/
  522. /*]*/
  523. /*IF*/if (a1) {
  524. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms87_470));
  525. /*]*/
  526. }
  527. else {
  528. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms92_470));
  529. /*]*/
  530. }
  531. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  532. char b1='\50';
  533. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  534. }/*]*/
  535. /*]*/
  536. X662compile_to_c(r999arg1(C));
  537. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  538. char b1='\51';
  539. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  540. }/*]*/
  541. /*]*/
  542. }
  543. /*FI*/}
  544. void r999c2c_exp_ref(T0* a1,T0* a2,T0* a3,T0* a4){
  545. /*IF*/if (X662is_void(a3)) {
  546. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms1_999));
  547. /*]*/
  548. X662compile_to_c(a1);
  549. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms2_999));
  550. /*]*/
  551. }
  552. else {
  553. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms3_999));
  554. /*]*/
  555. X662compile_to_c(a1);
  556. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms4_999));
  557. /*]*/
  558. X662compile_to_c(a3);
  559. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms5_999));
  560. /*]*/
  561. }
  562. /*FI*/}
  563. /*No:CALL_INFIX_EQ.is_current*/
  564. void r999mapping_c_arg(T999* C,T0* a1){
  565. T0* _actual_type=NULL;
  566. _actual_type=X291run_type((((T999*)C))->_result_type/*20*/);
  567. /*IF*/if (X291is_reference(_actual_type)) {
  568. /*IF*/if (X291is_reference(a1)) {
  569. r999compile_to_c(C);
  570. }
  571. else {
  572. X291to_expanded(_actual_type);
  573. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  574. char b1='\50';
  575. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  576. }/*]*/
  577. /*]*/
  578. r999compile_to_c(C);
  579. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  580. char b1='\51';
  581. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  582. }/*]*/
  583. /*]*/
  584. }
  585. /*FI*/}
  586. else {
  587. /*IF*/if (X291is_reference(a1)) {
  588. X291to_reference(_actual_type);
  589. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  590. char b1='\50';
  591. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  592. }/*]*/
  593. /*]*/
  594. r999compile_to_c(C);
  595. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  596. char b1='\51';
  597. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  598. }/*]*/
  599. /*]*/
  600. }
  601. else {
  602. /*IF*/if (X291need_c_struct(a1)) {
  603. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  604. char b1='\46';
  605. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  606. }/*]*/
  607. /*]*/
  608. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  609. char b1='\50';
  610. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  611. }/*]*/
  612. /*]*/
  613. r999compile_to_c(C);
  614. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  615. char b1='\51';
  616. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  617. }/*]*/
  618. /*]*/
  619. }
  620. else {
  621. r999compile_to_c(C);
  622. }
  623. /*FI*/}
  624. /*FI*/}
  625. /*FI*/}
  626. /*No:CALL_INFIX_EQ.fz_se_cmpt*/
  627. T0* r999type_boolean(void){
  628. if (fBC364type_boolean==0){
  629. T0* R=NULL;
  630. fBC364type_boolean=1;
  631. {T707*n=malloc(sizeof(*n));
  632. *n=M707;
  633. r707make(n,NULL);
  634. R=(T0*)n;
  635. }
  636. oBC364type_boolean=R;}
  637. return oBC364type_boolean;}
  638. /*No:CALL_INFIX_EQ.static_value*/
  639. void r999cmp_user_expanded(T999* C,int a1,T0* a2){
  640. int _mem_id=0;
  641. /*IF*/if (X291is_dummy_expanded(a2)) {
  642. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  643. char b1='\50';
  644. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  645. }/*]*/
  646. /*]*/
  647. X662compile_to_c((((T999*)C))->_target/*12*/);
  648. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  649. char b1='\54';
  650. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  651. }/*]*/
  652. /*]*/
  653. X662compile_to_c(r999arg1(C));
  654. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  655. char b1='\54';
  656. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  657. }/*]*/
  658. /*]*/
  659. /*IF*/if (a1) {
  660. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  661. char b1='1';
  662. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  663. }/*]*/
  664. /*]*/
  665. }
  666. else {
  667. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  668. char b1='0';
  669. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  670. }/*]*/
  671. /*]*/
  672. }
  673. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  674. char b1='\51';
  675. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  676. }/*]*/
  677. /*]*/
  678. }
  679. else {
  680. _mem_id=X291id(a2);
  681. /*IF*/if (a1) {
  682. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  683. char b1='\41';
  684. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  685. }/*]*/
  686. /*]*/
  687. }
  688. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms122_470));
  689. /*]*/
  690. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),_mem_id);
  691. /*]*/
  692. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms16_841));
  693. /*]*/
  694. X662compile_to_c((((T999*)C))->_target/*12*/);
  695. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms17_841));
  696. /*]*/
  697. X662compile_to_c(r999arg1(C));
  698. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms18_841));
  699. /*]*/
  700. }
  701. /*FI*/}
  702. void r999make(T999* C,T0* a1,T0* a2,T0* a3){
  703. T0* _eal=NULL;
  704. /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) {
  705. r683add_position(a2);
  706. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618);
  707. r683fatal_error(((T683*)(oBC364eh)),b1);
  708. }/*]*/
  709. }
  710. /*FI*/{T454*n=malloc(sizeof(*n));
  711. *n=M454;
  712. r454make(n,r999operator(),a2);
  713. C->_feature_name=(T0*)n;
  714. }
  715. {T431*n=malloc(sizeof(*n));
  716. *n=M431;
  717. /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3));
  718. /*]*/
  719. _eal=(T0*)n;
  720. }
  721. r999make_call_1(C,a1,(((T999*)C))->_feature_name/*28*/,_eal);
  722. }
  723. void r999mapping_c_target(T999* C,T0* a1){
  724. T0* _actual_type=NULL;
  725. int _flag=0;
  726. _flag=r324call_invariant_start(a1);
  727. _actual_type=X291run_type((((T999*)C))->_result_type/*20*/);
  728. /*IF*/if (X291is_reference(_actual_type)) {
  729. /*IF*/if (X291is_reference(a1)) {
  730. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  731. char b1='\50';
  732. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  733. }/*]*/
  734. /*]*/
  735. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  736. char b1='\50';
  737. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  738. }/*]*/
  739. /*]*/
  740. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  741. char b1='T';
  742. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  743. }/*]*/
  744. /*]*/
  745. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X291id(a1));
  746. /*]*/
  747. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  748. char b1='\52';
  749. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  750. }/*]*/
  751. /*]*/
  752. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  753. char b1='\51';
  754. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  755. }/*]*/
  756. /*]*/
  757. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  758. char b1='\50';
  759. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  760. }/*]*/
  761. /*]*/
  762. r999compile_to_c(C);
  763. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  764. char b1='\51';
  765. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  766. }/*]*/
  767. /*]*/
  768. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  769. char b1='\51';
  770. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  771. }/*]*/
  772. /*]*/
  773. }
  774. else {
  775. X291to_expanded(_actual_type);
  776. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  777. char b1='\50';
  778. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  779. }/*]*/
  780. /*]*/
  781. r999compile_to_c(C);
  782. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  783. char b1='\51';
  784. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  785. }/*]*/
  786. /*]*/
  787. }
  788. /*FI*/}
  789. else {
  790. /*IF*/if (X291is_reference(a1)) {
  791. X291to_reference(_actual_type);
  792. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  793. char b1='\50';
  794. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  795. }/*]*/
  796. /*]*/
  797. r999compile_to_c(C);
  798. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  799. char b1='\51';
  800. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  801. }/*]*/
  802. /*]*/
  803. }
  804. else {
  805. /*IF*/if (X291need_c_struct(a1)) {
  806. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  807. char b1='\46';
  808. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  809. }/*]*/
  810. /*]*/
  811. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  812. char b1='\50';
  813. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  814. }/*]*/
  815. /*]*/
  816. r999compile_to_c(C);
  817. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  818. char b1='\51';
  819. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  820. }/*]*/
  821. /*]*/
  822. }
  823. else {
  824. r999compile_to_c(C);
  825. }
  826. /*FI*/}
  827. /*FI*/}
  828. /*FI*//*IF*/if (_flag) {
  829. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T544* C1=((T544*)(oBC324out_c));
  830. char b1='\51';
  831. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  832. }/*]*/
  833. /*]*/
  834. }
  835. /*FI*/}
  836. /*No:CALL_INFIX_EQ.nb_errors*/
  837. void r999to_runnable_equal_not_equal(T999* C,T0* a1){
  838. T0* _at=NULL;
  839. T0* _tt=NULL;
  840. T0* _a=NULL;
  841. T0* _t=NULL;
  842. C->_current_type=a1;
  843. _t=X662to_runnable((((T999*)C))->_target/*12*/,a1);
  844. /*IF*/if ((_t)==((void*)(NULL))) {
  845. r999error(X662start_position((((T999*)C))->_target/*12*/),((T0*)ms1_841));
  846. }
  847. else {
  848. C->_target=_t;
  849. }
  850. /*FI*/_a=X431to_runnable((((T999*)C))->_arguments/*24*/,a1);
  851. /*IF*/if ((_a)!=((void*)(NULL))) {
  852. C->_arguments=_a;
  853. }
  854. /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  855. _tt=X291run_type(X662result_type((((T999*)C))->_target/*12*/));
  856. _at=X291run_type(X662result_type(r999arg1(C)));
  857. /*IF*/if (X291is_none(_tt)) {
  858. /*IF*/if (X291is_expanded(_at)) {
  859. X291used_as_reference(_at);
  860. }
  861. /*FI*/}
  862.  else if (X291is_none(_at)) {
  863. /*IF*/if (X291is_expanded(_tt)) {
  864. X291used_as_reference(_tt);
  865. }
  866. /*FI*/}
  867.  else if (X291is_reference(_tt)) {
  868. /*IF*/if (X291is_reference(_at)) {
  869. /*IF*/if (X291is_a(_tt,_at)) {
  870. }
  871. else {
  872. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  873. /*]*/
  874. r38clear(((T38*)(oBC683positions)));
  875. /*]*/
  876. /*IF*/if (X291is_a(_at,_tt)) {
  877. }
  878. else {
  879. r999error_comparison(C,((T0*)ms2_841));
  880. }
  881. /*FI*/}
  882. /*FI*/}
  883.  else if (!(X291is_a(_at,_tt))) {
  884. r999error_comparison(C,((T0*)ms3_841));
  885. }
  886. else {
  887. X291used_as_reference(_at);
  888. }
  889. /*FI*/}
  890. else {
  891. /*IF*/if (X291is_expanded(_at)) {
  892. /*IF*/if (X291is_basic_eiffel_expanded(_at)) {
  893. /*IF*/if (X291is_a(_tt,_at)) {
  894. }
  895. else {
  896. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  897. /*]*/
  898. r38clear(((T38*)(oBC683positions)));
  899. /*]*/
  900. /*IF*/if (X291is_a(_at,_tt)) {
  901. }
  902. else {
  903. r999error_comparison(C,((T0*)ms4_841));
  904. }
  905. /*FI*/}
  906. /*FI*/}
  907.  else if (X291is_bit(_tt)) {
  908. r999bit_limitation(C,_tt,_at);
  909. }
  910.  else if (!(X291is_a(_at,_tt))) {
  911. r999error_comparison(C,((T0*)ms5_841));
  912. }
  913. /*FI*/}
  914.  else if (!(X291is_a(_tt,_at))) {
  915. r999error_comparison(C,((T0*)ms6_841));
  916. }
  917. else {
  918. X291used_as_reference(_tt);
  919. }
  920. /*FI*/}
  921. /*FI*/}
  922. /*FI*/}
  923. /*No:CALL_INFIX_EQ.feature_name*/
  924. /*No:CALL_INFIX_EQ.fz_iinaiv*/
  925. /*No:CALL_INFIX_EQ.arg_count*/
  926. /*No:CALL_INFIX_EQ.dca_inline_argument*/
  927. /*No:CALL_INFIX_EQ.run_feature*/
  928. /*No:CALL_INFIX_EQ.start_position*/
  929. /*No:CALL_INFIX_EQ.target*/
  930. void r999compile_to_c(T999* C){
  931. T0* _at=NULL;
  932. T0* _tt=NULL;
  933. _tt=X291run_type(X662result_type((((T999*)C))->_target/*12*/));
  934. _at=X291run_type(X662result_type(r999arg1(C)));
  935. /*IF*/if (X291is_expanded(_tt)) {
  936. /*IF*/if (X291is_expanded(_at)) {
  937. /*IF*/if (X291is_user_expanded(_tt)) {
  938. r999cmp_user_expanded(C,1,_tt);
  939. }
  940.  else if (X291is_basic_eiffel_expanded(_tt)) {
  941. r999cmp_basic_eiffel_expanded(C,1,_at,_tt);
  942. }
  943.  else if (X291is_bit(_tt)) {
  944. r999cmp_bit(C,1,_tt);
  945. }
  946. else {
  947. r999cmp_basic_ref(C,1);
  948. }
  949. /*FI*/}
  950. else {
  951. r999c2c_exp_ref((((T999*)C))->_target/*12*/,_tt,r999arg1(C),_at);
  952. }
  953. /*FI*/}
  954.  else if (X291is_expanded(_at)) {
  955. r999c2c_exp_ref(r999arg1(C),_at,(((T999*)C))->_target/*12*/,_tt);
  956. }
  957. else {
  958. r999cmp_basic_ref(C,1);
  959. }
  960. /*FI*/}
  961. /*No:CALL_INFIX_EQ.c_simple*/
  962. T0* r999to_runnable(T999* C,T0* a1){
  963. T0* R=NULL;
  964. /*IF*/if (((((T999*)C))->_current_type/*8*/)==((void*)(NULL))) {
  965. r999to_runnable_equal_not_equal(C,a1);
  966. C->_result_type=r999type_boolean();
  967. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  968. R=(T0*)C;
  969. }
  970. /*FI*/}
  971. else {
  972. {T999*n=malloc(sizeof(*n));
  973. *n=M999;
  974. r999make(n,(((T999*)C))->_target/*12*/,(((T454*)((T454*)((((T999*)C))->_feature_name/*28*/))))->_start_position/*8*/,r999arg1(C));
  975. R=(T0*)n;
  976. }
  977. R=r999to_runnable(((T999*)R),a1);
  978. }
  979. /*FI*/return R;
  980. }
  981. /*No:CALL_INFIX_EQ.fz_cast_void_star*/
  982. /*No:CALL_INFIX_EQ.result_type*/
  983. /*No:CALL_INFIX_EQ.is_result*/
  984. /*No:CALL_INFIX_EQ.fz_13*/
  985. T0* r999operator(void){
  986. T0* R=NULL;
  987. R=((T0*)ms31_473);
  988. return R;
  989. }
  990. int r999is_static(T999* C){
  991. int R=0;
  992. /*IF*/if (X662is_void((((T999*)C))->_target/*12*/)) {
  993. R=r999is_static_eq_void(C,r999arg1(C));
  994. }
  995.  else if (X662is_void(r999arg1(C))) {
  996. R=r999is_static_eq_void(C,(((T999*)C))->_target/*12*/);
  997. }
  998.  else if ((X662is_static((((T999*)C))->_target/*12*/))&&(X662is_static(r999arg1(C)))) {
  999. R=1;
  1000. /*IF*/if ((X662static_value((((T999*)C))->_target/*12*/))==(X662static_value(r999arg1(C)))) {
  1001. C->_static_value_mem=1;
  1002. }
  1003. /*FI*/}
  1004. /*FI*/return R;
  1005. }
  1006. void r999cmp_basic_ref(T999* C,int a1){
  1007. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1008. char b1='\50';
  1009. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1010. }/*]*/
  1011. /*]*/
  1012. X662compile_to_c((((T999*)C))->_target/*12*/);
  1013. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1014. char b1='\51';
  1015. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1016. }/*]*/
  1017. /*]*/
  1018. /*IF*/if (a1) {
  1019. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms87_470));
  1020. /*]*/
  1021. }
  1022. else {
  1023. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms92_470));
  1024. /*]*/
  1025. }
  1026. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1027. char b1='\50';
  1028. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1029. }/*]*/
  1030. /*]*/
  1031. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms86_470));
  1032. /*]*/
  1033. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1034. char b1='\50';
  1035. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1036. }/*]*/
  1037. /*]*/
  1038. X662compile_to_c(r999arg1(C));
  1039. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1040. char b1='\51';
  1041. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1042. }/*]*/
  1043. /*]*/
  1044. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1045. char b1='\51';
  1046. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1047. }/*]*/
  1048. /*]*/
  1049. }
  1050. int r999is_static_eq_void(T999* C,T0* a1){
  1051. int R=0;
  1052. T0* _rt=NULL;
  1053. /*IF*/if (X662is_current(a1)) {
  1054. R=1;
  1055. }
  1056.  else if (X662is_manifest_string(a1)) {
  1057. R=1;
  1058. }
  1059.  else if (r999is_manifest_array(a1)) {
  1060. R=1;
  1061. }
  1062. else {
  1063. _rt=X291run_type(X662result_type(a1));
  1064. /*IF*/if (X291is_expanded(_rt)) {
  1065. /*IF*/if (X662can_be_dropped(a1)) {
  1066. R=1;
  1067. }
  1068. /*FI*/}
  1069.  else if (X662is_static(a1)) {
  1070. /*IF*/if ((X662static_value(a1))==(0)) {
  1071. R=1;
  1072. C->_static_value_mem=1;
  1073. }
  1074. /*FI*/}
  1075. /*FI*/}
  1076. /*FI*/return R;
  1077. }
  1078. /*No:CALL_INFIX_EQ.can_be_dropped*/
  1079. void r999bit_limitation(T999* C,T0* a1,T0* a2){
  1080. T0* _b2=NULL;
  1081. T0* _b1=NULL;
  1082. _b1=a1;
  1083. if(NULL!=(_b1))switch(((T0*)_b1)->id) {
  1084. case 549: case 558: 
  1085. break;
  1086. default:
  1087. _b1=NULL;
  1088. };_b2=a2;
  1089. if(NULL!=(_b2))switch(((T0*)_b2)->id) {
  1090. case 549: case 558: 
  1091. break;
  1092. default:
  1093. _b2=NULL;
  1094. };/*IF*/if ((X609nb(_b1))!=(X609nb(_b2))) {
  1095. r683add_position((((T454*)((T454*)((((T999*)C))->_feature_name/*28*/))))->_start_position/*8*/);
  1096. /*[IRF3.6append*/{T0* b1=((T0*)ms9_841);
  1097. r7append(((T7*)(oBC683explanation)),b1);
  1098. }/*]*/
  1099. r683add_type(_b1,((T0*)ms10_841));
  1100. r683add_type(_b2,((T0*)ms11_841));
  1101. r683print_as_fatal_error(((T683*)(oBC364eh)));
  1102. }
  1103. /*FI*/}
  1104. /*No:CALL_INFIX_EQ.current_type*/
  1105. void r999compile_to_c_old(T999* C){
  1106. X662compile_to_c_old((((T999*)C))->_target/*12*/);
  1107. /*IF*/{/*AT*/X431compile_to_c_old((((T999*)C))->_arguments/*24*/);
  1108. }
  1109. /*FI*/}
  1110. void r999cmp_basic_eiffel_expanded(T999* C,int a1,T0* a2,T0* a3){
  1111. int _flag=0;
  1112. _flag=(X291is_real(a2))||(X291is_real(a3));
  1113. /*IF*/if (_flag) {
  1114. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms19_841));
  1115. /*]*/
  1116. }
  1117. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1118. char b1='\50';
  1119. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1120. }/*]*/
  1121. /*]*/
  1122. X662compile_to_c((((T999*)C))->_target/*12*/);
  1123. /*IF*/if (_flag) {
  1124. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms147_470));
  1125. /*]*/
  1126. }
  1127. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1128. char b1='\51';
  1129. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1130. }/*]*/
  1131. /*]*/
  1132. /*IF*/if (a1) {
  1133. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms87_470));
  1134. /*]*/
  1135. }
  1136. else {
  1137. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms92_470));
  1138. /*]*/
  1139. }
  1140. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1141. char b1='\50';
  1142. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1143. }/*]*/
  1144. /*]*/
  1145. /*IF*/if (_flag) {
  1146. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms19_841));
  1147. /*]*/
  1148. }
  1149. /*FI*/X662compile_to_c(r999arg1(C));
  1150. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1151. char b1='\51';
  1152. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1153. }/*]*/
  1154. /*]*/
  1155. /*IF*/if (_flag) {
  1156. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms147_470));
  1157. /*]*/
  1158. }
  1159. /*FI*/}
  1160. /*No:CALL_INFIX_EQ.static_value_mem*/
  1161. void r999make_call_1(T999* C,T0* a1,T0* a2,T0* a3){
  1162. C->_target=a1;
  1163. C->_feature_name=a2;
  1164. C->_arguments=a3;
  1165. }
  1166. /*No:CALL_INFIX_EQ.is_manifest_string*/
  1167. /*No:CALL_INFIX_EQ.fz_c_neq*/
  1168. /*No:CALL_INFIX_EQ.fz_c_eq*/
  1169. /*No:CALL_INFIX_EQ.us_eq*/
  1170. /*No:CALL_INFIX_EQ.is_void*/
  1171. int r999is_manifest_array(T0* a1){
  1172. int R=0;
  1173. T0* _ma=NULL;
  1174. _ma=a1;
  1175. if(NULL!=(_ma))switch(((T0*)_ma)->id) {
  1176. case 436: 
  1177. break;
  1178. default:
  1179. _ma=NULL;
  1180. };R=(_ma)!=((void*)(NULL));
  1181. return R;
  1182. }
  1183. /*No:CALL_INFIX_EQ.fz_dot*/
  1184. /*No:CALL_INFIX_EQ.is_pre_computable*/
  1185. int r999use_current(T999* C){
  1186. int R=0;
  1187. R=(X662use_current((((T999*)C))->_target/*12*/))||(X662use_current(r999arg1(C)));
  1188. return R;
  1189. }
  1190. /*No:CALL_INFIX_EQ.finalize*/
  1191. void r999dca_inline(T999* C,T0* a1){
  1192. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1193. char b1='\50';
  1194. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1195. }/*]*/
  1196. /*]*/
  1197. r324put_target_as_value(((T324*)(oBC364cpp)));
  1198. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1199. char b1='\51';
  1200. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1201. }/*]*/
  1202. /*]*/
  1203. /*IF*/if ((/*(IRF4.5first*//*(IRF4.6item*/((((T7*)((T7*)(r999operator()))))->_storage/*0*/)[(1)-(1)]/*)*//*)*/)==('\75')) {
  1204. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms87_470));
  1205. /*]*/
  1206. }
  1207. else {
  1208. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms92_470));
  1209. /*]*/
  1210. }
  1211. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1212. char b1='\50';
  1213. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1214. }/*]*/
  1215. /*]*/
  1216. X662dca_inline_argument(r999arg1(C),a1);
  1217. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1218. char b1='\51';
  1219. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1220. }/*]*/
  1221. /*]*/
  1222. }
  1223. void r999error(T0* a1,T0* a2){
  1224. r683add_position(a1);
  1225. r683error(((T683*)(oBC364eh)),a2);
  1226. }
  1227. /*No:CALL_INFIX_EQ.isa_dca_inline_argument*/
  1228. /*No:CALL_INFIX_EQ.fatal_error*/
  1229. T0* r999arg1(T999* C){
  1230. T0* R=NULL;
  1231. R=X431first((((T999*)C))->_arguments/*24*/);
  1232. return R;
  1233. }
  1234. /*No:CALL_INFIX_EQ.fz_cast_float*/
  1235. void r999afd_check(T999* C){
  1236. X662afd_check((((T999*)C))->_target/*12*/);
  1237. X662afd_check(r999arg1(C));
  1238. }
  1239. /*No:TYPE_GENERIC.fz_is_invalid*/
  1240. int r720id(T720* C){
  1241. int R=0;
  1242. R=(((T355*)((T355*)(r720run_class(C)))))->_id/*4*/;
  1243. return R;
  1244. }
  1245. /*No:TYPE_GENERIC.gc_set_unmarked_in*/
  1246. int r720standard_space_for_object(T720* C){
  1247. int R=0;
  1248. int _i=0;
  1249. T0* _a=NULL;
  1250. T0* _wa=NULL;
  1251. T0* _rc=NULL;
  1252. _rc=r720run_class(C);
  1253. /*IF*/if (r355is_tagged(((T355*)_rc))) {
  1254. R=r720space_for_integer();
  1255. }
  1256. /*FI*/_wa=r355writable_attributes(((T355*)_rc));
  1257. /*IF*/if ((_wa)!=((void*)(NULL))) {
  1258. _i=(((T280*)((T280*)_wa)))->_upper/*12*/;
  1259. while (!((_i)==(0))) {
  1260. _a=r280item(((T280*)_wa),_i);
  1261. R=(R)+(X291space_for_variable((((T820*)((T820*)_a)))->_result_type/*24*/));
  1262. _i=(_i)-(1);
  1263. }
  1264. }
  1265. /*FI*/return R;
  1266. }
  1267. int r720has_creation(T720* C,T0* a1){
  1268. int R=0;
  1269. R=r605has_creation(((T605*)(r720base_class(C))),a1);
  1270. return R;
  1271. }
  1272. /*No:TYPE_GENERIC.set_run_type_memory*/
  1273. /*No:TYPE_GENERIC.is_anchored*/
  1274. /*No:TYPE_GENERIC.is_array*/
  1275. /*No:TYPE_GENERIC.fz_typedef*/
  1276. /*No:TYPE_GENERIC.fz_else*/
  1277. int r720is_a(T720* C,T0* a1){
  1278. int R=0;
  1279. T0* _t2=NULL;
  1280. T0* _t1=NULL;
  1281. int _i=0;
  1282. /*IF*/if (X291is_none(a1)) {
  1283. }
  1284.  else if ((r720run_class(C))==((void*)(X291run_class(a1)))) {
  1285. R=1;
  1286. }
  1287.  else if (X291is_generic(a1)) {
  1288. /*IF*/if ((r720base_class(C))==((void*)(X291base_class(a1)))) {
  1289. R=1;
  1290. _i=(((T701*)((T701*)((((T720*)C))->_generic_list/*8*/))))->_upper/*8*/;
  1291. while (!((!(R))||((_i)==(0)))) {
  1292. _t1=X291run_type(r701item(((T701*)((((T720*)C))->_generic_list/*8*/)),_i));
  1293. _t2=X291run_type(r701item(((T701*)(X291generic_list(a1))),_i));
  1294. /*IF*/if (X291is_a(_t1,_t2)) {
  1295. _i=(_i)-(1);
  1296. }
  1297. else {
  1298. R=0;
  1299. /*[IRF3.6append*/{T0* b1=((T0*)ms59_470);
  1300. r7append(((T7*)(oBC683explanation)),b1);
  1301. }/*]*/
  1302. }
  1303. /*FI*/}
  1304. }
  1305.  else if (r605is_subclass_of(((T605*)(r720base_class(C))),X291base_class(a1))) {
  1306. R=r605is_a_vncg(((T605*)(r720base_class(C))),(T0*)C,a1);
  1307. }
  1308. /*FI*/}
  1309. else {
  1310. /*IF*/if (r605is_subclass_of(((T605*)(r720base_class(C))),X291base_class(a1))) {
  1311. R=1;
  1312. }
  1313. /*FI*/}
  1314. /*FI*//*IF*/if (!(R)) {
  1315. r683add_type((T0*)C,((T0*)ms71_470));
  1316. r683add_type(a1,((T0*)ms1_720));
  1317. }
  1318. /*FI*/return R;
  1319. }
  1320. void r720gcmt_max_in(T720* C,T0* a1){
  1321. r7append(((T7*)a1),((T0*)ms55_291));
  1322. r2append_in(r720id(C),a1);
  1323. }
  1324. void r720c_initialize_in(T720* C,T0* a1){
  1325. /*IF*/if (r720is_expanded(C)) {
  1326. /*IF*/if (r720need_c_struct(C)) {
  1327. r355c_object_model_in(((T355*)(r720run_class(C))),a1);
  1328. }
  1329. else {
  1330. r7extend(((T7*)a1),'0');
  1331. }
  1332. /*FI*/}
  1333. else {
  1334. r7append(((T7*)a1),((T0*)ms117_470));
  1335. }
  1336. /*FI*/}
  1337. /*No:TYPE_GENERIC.fz_gc_sweep*/
  1338. void r720c_type_for_argument_in(T720* C,T0* a1){
  1339. /*IF*/if (r720is_reference(C)) {
  1340. r7append(((T7*)a1),((T0*)ms128_470));
  1341. }
  1342.  else if (r720is_dummy_expanded(C)) {
  1343. r7append(((T7*)a1),((T0*)ms111_470));
  1344. }
  1345. else {
  1346. r7extend(((T7*)a1),'T');
  1347. r2append_in(r720id(C),a1);
  1348. r7extend(((T7*)a1),'\52');
  1349. }
  1350. /*FI*/}
  1351. void r720standard_c_object_model(T720* C){
  1352. T0* _rc=NULL;
  1353. int _mem_id=0;
  1354. T0* _wa=NULL;
  1355. _rc=r720run_class(C);
  1356. _mem_id=(((T355*)((T355*)_rc)))->_id/*4*/;
  1357. _wa=r355writable_attributes(((T355*)_rc));
  1358. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms103_470));
  1359. r7extend(((T7*)(oBC291tmp_string)),'T');
  1360. r2append_in(_mem_id,oBC291tmp_string);
  1361. r7extend(((T7*)(oBC291tmp_string)),'\40');
  1362. r7extend(((T7*)(oBC291tmp_string)),'M');
  1363. r2append_in(_mem_id,oBC291tmp_string);
  1364. r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
  1365. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  1366. /*]*/
  1367. /*[IRF3.3swap_on_c*/((((T324*)(((T324*)(oBC364cpp)))))->_current_out)=(oBC324out_c);
  1368. /*]*/
  1369. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
  1370. /*]*/
  1371. r7extend(((T7*)(oBC291tmp_string)),'T');
  1372. r2append_in(_mem_id,oBC291tmp_string);
  1373. r7extend(((T7*)(oBC291tmp_string)),'\40');
  1374. r7extend(((T7*)(oBC291tmp_string)),'M');
  1375. r2append_in(_mem_id,oBC291tmp_string);
  1376. r7extend(((T7*)(oBC291tmp_string)),'\75');
  1377. r355c_object_model_in(((T355*)_rc),oBC291tmp_string);
  1378. r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
  1379. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  1380. /*]*/
  1381. r324swap_on_h(((T324*)(oBC364cpp)));
  1382. }
  1383. void r720gc_call_new_in(T720* C,T0* a1){
  1384. r7append(((T7*)a1),((T0*)ms115_470));
  1385. r2append_in(r720id(C),a1);
  1386. r7extend(((T7*)a1),'\50');
  1387. r7extend(((T7*)a1),'\51');
  1388. }
  1389. /*No:TYPE_GENERIC.fz_se_cmpt*/
  1390. int r720space_for_pointer(void){
  1391. int R=0;
  1392. void* _p=0;
  1393. R=sizeof(T8);
  1394. return R;
  1395. }
  1396. T0* r720run_type(T720* C){
  1397. T0* R=NULL;
  1398. /*IF*/if (r720is_run_type(C)) {
  1399. R=(((T720*)C))->_run_type_memory/*16*/;
  1400. }
  1401. /*FI*/return R;
  1402. }
  1403. /*No:TYPE_GENERIC.is_pointer*/
  1404. void r720gc_align_mark_in(T720* C,T0* a1){
  1405. r7append(((T7*)a1),((T0*)ms58_291));
  1406. r2append_in(r720id(C),a1);
  1407. }
  1408. int r720is_dummy_expanded(T720* C){
  1409. int R=0;
  1410. /*IF*/if (r720is_user_expanded(C)) {
  1411. R=(r355writable_attributes(((T355*)(r720run_class(C)))))==((void*)(NULL));
  1412. }
  1413. /*FI*/return R;
  1414. }
  1415. void r720gcmt_used_in(T720* C,T0* a1){
  1416. r7append(((T7*)a1),((T0*)ms56_291));
  1417. r2append_in(r720id(C),a1);
  1418. }
  1419. /*No:TYPE_GENERIC.is_string*/
  1420. int r720space_for_variable(T720* C){
  1421. int R=0;
  1422. /*IF*/if (r720is_reference(C)) {
  1423. R=r720space_for_pointer();
  1424. }
  1425. else {
  1426. R=r720standard_space_for_object(C);
  1427. }
  1428. /*FI*/return R;
  1429. }
  1430. void r720standard_c_struct(T720* C){
  1431. T0* _t=NULL;
  1432. T0* _a=NULL;
  1433. int _mem_id=0;
  1434. int _i=0;
  1435. T0* _wa=NULL;
  1436. _mem_id=r720id(C);
  1437. _wa=r355writable_attributes(((T355*)(r720run_class(C))));
  1438. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms125_470));
  1439. r7extend(((T7*)(oBC291tmp_string)),'S');
  1440. r2append_in(_mem_id,oBC291tmp_string);
  1441. r7extend(((T7*)(oBC291tmp_string)),'\173');
  1442. /*IF*/if (r720is_reference(C)) {
  1443. /*IF*/if (r355is_tagged(((T355*)(r720run_class(C))))) {
  1444. r7append(((T7*)(oBC291tmp_string)),((T0*)ms4_291));
  1445. }
  1446. /*FI*/}
  1447. /*FI*//*IF*/if ((_wa)!=((void*)(NULL))) {
  1448. _i=(((T280*)((T280*)_wa)))->_upper/*12*/;
  1449. while (!((_i)==(0))) {
  1450. _a=r280item(((T280*)_wa),_i);
  1451. _t=X291run_type((((T820*)((T820*)_a)))->_result_type/*24*/);
  1452. X291c_type_for_result_in(_t,oBC291tmp_string);
  1453. r7extend(((T7*)(oBC291tmp_string)),'\40');
  1454. r7extend(((T7*)(oBC291tmp_string)),'\137');
  1455. r7append(((T7*)(oBC291tmp_string)),X776to_string((((T820*)((T820*)_a)))->_name/*16*/));
  1456. r7extend(((T7*)(oBC291tmp_string)),'\73');
  1457. _i=(_i)-(1);
  1458. }
  1459. }
  1460. /*FI*/r7extend(((T7*)(oBC291tmp_string)),'\175');
  1461. r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
  1462. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  1463. /*]*/
  1464. /*IF*/if (r720is_expanded(C)) {
  1465. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms111_470));
  1466. r7extend(((T7*)(oBC291tmp_string)),'\40');
  1467. r7append(((T7*)(oBC291tmp_string)),((T0*)ms122_470));
  1468. r2append_in(_mem_id,oBC291tmp_string);
  1469. r7append(((T7*)(oBC291tmp_string)),((T0*)ms5_291));
  1470. r2append_in(_mem_id,oBC291tmp_string);
  1471. r7append(((T7*)(oBC291tmp_string)),((T0*)ms6_291));
  1472. r2append_in(_mem_id,oBC291tmp_string);
  1473. r7append(((T7*)(oBC291tmp_string)),((T0*)ms7_291));
  1474. r324put_c_function(((T324*)(oBC364cpp)),oBC291tmp_string,((T0*)ms8_291));
  1475. }
  1476. /*FI*/}
  1477. /*No:TYPE_GENERIC.is_like_feature*/
  1478. /*No:TYPE_GENERIC.fz_t0_star*/
  1479. /*No:TYPE_GENERIC.is_like_current*/
  1480. void r720basic_checks(T720* C){
  1481. T0* _fgl=NULL;
  1482. T0* _bc=NULL;
  1483. _bc=r720base_class(C);
  1484. _fgl=(((T605*)((T605*)_bc)))->_formal_generic_list/*28*/;
  1485. /*IF*/if ((_fgl)==((void*)(NULL))) {
  1486. r683add_position(/*(IRF4.6start_position*/(((T451*)((T451*)((((T720*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/);
  1487. /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)((T605*)_bc)))->_base_class_name/*24*/))))->_to_string/*0*/;
  1488. r7append(((T7*)(oBC683explanation)),b1);
  1489. }/*]*/
  1490. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_720);
  1491. r683fatal_error(((T683*)(oBC364eh)),b1);
  1492. }/*]*/
  1493. }
  1494.  else if ((/*(IRF4.6count*/(((T681*)((T681*)((((T881*)((T881*)_fgl)))->_list/*4*/))))->_upper/*8*//*)*/)!=(r701count(((T701*)((((T720*)C))->_generic_list/*8*/))))) {
  1495. r683add_position(/*(IRF4.6start_position*/(((T451*)((T451*)((((T720*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/);
  1496. r683add_position((((T881*)((T881*)_fgl)))->_start_position/*0*/);
  1497. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms61_470);
  1498. r683fatal_error(((T683*)(oBC364eh)),b1);
  1499. }/*]*/
  1500. }
  1501. /*FI*/}
  1502. void r720make(T720* C,T0* a1,T0* a2){
  1503. T0* _t=NULL;
  1504. int _i=0;
  1505. C->_base_class_name=a1;
  1506. C->_generic_list=a2;
  1507. r7copy(((T7*)(oBC720tmp_mark)),(((T451*)((T451*)a1)))->_to_string/*0*/);
  1508. r7extend(((T7*)(oBC720tmp_mark)),'\133');
  1509. _i=1;
  1510. while (!((_i)>((((T701*)((T701*)a2)))->_upper/*8*/))) {
  1511. _t=r701item(((T701*)a2),_i);
  1512. r7append(((T7*)(oBC720tmp_mark)),X291written_mark(_t));
  1513. _i=(_i)+(1);
  1514. /*IF*/if ((_i)<=((((T701*)((T701*)a2)))->_upper/*8*/)) {
  1515. r7extend(((T7*)(oBC720tmp_mark)),'\54');
  1516. }
  1517. /*FI*/}
  1518. r7extend(((T7*)(oBC720tmp_mark)),'\135');
  1519. C->_written_mark=r902item(oBC720tmp_mark);
  1520. }
  1521. /*No:TYPE_GENERIC.fz_gc*/
  1522. T0* r720type_any(void){
  1523. if (fBC364type_any==0){
  1524. T0* R=NULL;
  1525. fBC364type_any=1;
  1526. {T669*n=malloc(sizeof(*n));
  1527. *n=M669;
  1528. r669make(n,NULL);
  1529. R=(T0*)n;
  1530. }
  1531. oBC364type_any=R;}
  1532. return oBC364type_any;}
  1533. /*No:TYPE_GENERIC.gc_if_marked_in*/
  1534. /*No:TYPE_GENERIC.fz_gc_sweep_pool*/
  1535. void r720mapping_cast(T720* C){
  1536. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
  1537. /*]*/
  1538. r7extend(((T7*)(oBC291tmp_string)),'\50');
  1539. r720c_type_for_target_in(C,oBC291tmp_string);
  1540. r7extend(((T7*)(oBC291tmp_string)),'\51');
  1541. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  1542. /*]*/
  1543. }
  1544. /*No:TYPE_GENERIC.start_position*/
  1545. void r720c_type_for_target_in(T720* C,T0* a1){
  1546. /*IF*/if (r720is_dummy_expanded(C)) {
  1547. r7append(((T7*)a1),((T0*)ms111_470));
  1548. }
  1549. else {
  1550. r7extend(((T7*)a1),'T');
  1551. r2append_in(r720id(C),a1);
  1552. r7extend(((T7*)a1),'\52');
  1553. }
  1554. /*FI*/}
  1555. /*No:TYPE_GENERIC.fz_printf*/
  1556. void r720gc_free_in(T720* C,T0* a1){
  1557. r7append(((T7*)a1),((T0*)ms57_291));
  1558. r2append_in(r720id(C),a1);
  1559. }
  1560. /*No:TYPE_GENERIC.gc_set_marked_in*/
  1561. /*No:TYPE_GENERIC.fz_gc_mark*/
  1562. /*No:TYPE_GENERIC.fz_inako*/
  1563. void r720standard_gc_initialize(T720* C){
  1564. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
  1565. /*]*/
  1566. r720gcmt_in(C,oBC291tmp_string);
  1567. r7append(((T7*)(oBC291tmp_string)),((T0*)ms53_291));
  1568. r720gcmt_max_in(C,oBC291tmp_string);
  1569. r7append(((T7*)(oBC291tmp_string)),((T0*)ms150_470));
  1570. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  1571. /*]*/
  1572. }
  1573. /*No:TYPE_GENERIC.gc_initialize*/
  1574. /*No:TYPE_GENERIC.fz_00*/
  1575. /*No:TYPE_GENERIC.is_character*/
  1576. int r720is_user_expanded(T720* C){
  1577. int R=0;
  1578. R=(((T605*)((T605*)(r720base_class(C)))))->_is_expanded/*20*/;
  1579. return R;
  1580. }
  1581. /*No:TYPE_GENERIC.written_mark*/
  1582. T0* r720to_runnable(T720* C,T0* a1){
  1583. T0* R=NULL;
  1584. T0* _rt=NULL;
  1585. T0* _t2=NULL;
  1586. T0* _t1=NULL;
  1587. T0* _rgl=NULL;
  1588. int _i=0;
  1589. /*IF*/if (((((T720*)C))->_run_type_memory/*16*/)==((void*)(NULL))) {
  1590. /*IF*/if (r720is_written_runnable(C)) {
  1591. C->_run_type_memory=(T0*)C;
  1592. r720basic_checks(C);
  1593. R=(T0*)C;
  1594. }
  1595. else {
  1596. _rgl=r701twin(((T701*)((((T720*)C))->_generic_list/*8*/)));
  1597. _i=(((T701*)((T701*)_rgl)))->_upper/*8*/;
  1598. while (!((_i)==(0))) {
  1599. _t1=r701item(((T701*)_rgl),_i);
  1600. _t2=X291to_runnable(_t1,a1);
  1601. /*IF*/if (((_t2)==((void*)(NULL)))||(!(X291is_run_type(_t2)))) {
  1602. r683add_type(_t1,((T0*)ms72_470));
  1603. r683print_as_error(((T683*)(oBC364eh)));
  1604. _i=0;
  1605. }
  1606. else {
  1607. /*[IRF3.6put*/{T701* C1=((T701*)_rgl);
  1608. T0* b1=_t2;
  1609. int b2=_i;
  1610. ((((T701*)C1))->_storage/*0*/)[(b2)-((((T701*)C1))->_lower/*12*/)]=(b1);
  1611. }/*]*/
  1612. }
  1613. /*FI*/_t2=X291run_type(_t2);
  1614. /*IF*/if (X291is_expanded(_t2)) {
  1615. r355set_at_run_time(((T355*)(X291run_class(_t2))));
  1616. }
  1617. /*FI*/_i=(_i)-(1);
  1618. }
  1619. {T720*n=malloc(sizeof(*n));
  1620. *n=M720;
  1621. r720make_runnable(n,(T0*)C,_rgl);
  1622. _rt=(T0*)n;
  1623. }
  1624. /*IF*/if (((((T720*)C))->_run_type_memory/*16*/)==((void*)(NULL))) {
  1625. C->_run_type_memory=_rt;
  1626. R=(T0*)C;
  1627. }
  1628. else {
  1629. R=r720twin(C);
  1630. /*[IRF3.3set_run_type_memory*/((((T720*)(((T720*)R))))->_run_type_memory)=(_rt);
  1631. /*]*/
  1632. }
  1633. /*FI*/}
  1634. /*FI*/}
  1635.  else if (r720is_written_runnable(C)) {
  1636. R=(T0*)C;
  1637. }
  1638. else {
  1639. _rgl=r701twin(((T701*)((((T720*)C))->_generic_list/*8*/)));
  1640. _i=(((T701*)((T701*)_rgl)))->_upper/*8*/;
  1641. while (!((_i)==(0))) {
  1642. _t1=r701item(((T701*)_rgl),_i);
  1643. _t2=X291to_runnable(_t1,a1);
  1644. /*IF*/if (((_t2)==((void*)(NULL)))||(!(X291is_run_type(_t2)))) {
  1645. r683add_type(_t1,((T0*)ms72_470));
  1646. r683print_as_error(((T683*)(oBC364eh)));
  1647. _i=0;
  1648. }
  1649. else {
  1650. /*[IRF3.6put*/{T701* C1=((T701*)_rgl);
  1651. T0* b1=_t2;
  1652. int b2=_i;
  1653. ((((T701*)C1))->_storage/*0*/)[(b2)-((((T701*)C1))->_lower/*12*/)]=(b1);
  1654. }/*]*/
  1655. }
  1656. /*FI*/_t2=X291run_type(_t2);
  1657. /*IF*/if (X291is_expanded(_t2)) {
  1658. r355set_at_run_time(((T355*)(X291run_class(_t2))));
  1659. }
  1660. /*FI*/_i=(_i)-(1);
  1661. }
  1662. {T720*n=malloc(sizeof(*n));
  1663. *n=M720;
  1664. r720make_runnable(n,(T0*)C,_rgl);
  1665. _rt=(T0*)n;
  1666. }
  1667. R=r720twin(C);
  1668. /*[IRF3.3set_run_type_memory*/((((T720*)(((T720*)R))))->_run_type_memory)=(_rt);
  1669. /*]*/
  1670. }
  1671. /*FI*/return R;
  1672. }
  1673. int r720is_run_type(T720* C){
  1674. int R=0;
  1675. /*IF*/if (((((T720*)C))->_run_type_memory/*16*/)!=((void*)(NULL))) {
  1676. R=1;
  1677. }
  1678.  else if (r720is_written_runnable(C)) {
  1679. C->_run_type_memory=(T0*)C;
  1680. r720basic_checks(C);
  1681. R=1;
  1682. }
  1683. /*FI*/return R;
  1684. }
  1685. /*No:TYPE_GENERIC.fz_c_if_eq_null*/
  1686. /*No:TYPE_GENERIC.fz_10*/
  1687. /*No:TYPE_GENERIC.run_type_memory*/
  1688. void r720c_type_for_external_in(T720* C,T0* a1){
  1689. /*IF*/if (r720is_reference(C)) {
  1690. r7append(((T7*)a1),((T0*)ms133_470));
  1691. r7extend(((T7*)a1),'\52');
  1692. }
  1693. else {
  1694. r720c_type_for_result_in(C,a1);
  1695. }
  1696. /*FI*/}
  1697. /*No:TYPE_GENERIC.is_formal_generic*/
  1698. /*No:TYPE_GENERIC.generic_list*/
  1699. /*No:TYPE_GENERIC.fz_null*/
  1700. void r720demangling_in(T720* C,T0* a1){
  1701. /*IF*/if (r720is_reference(C)) {
  1702. r7extend(((T7*)a1),'R');
  1703. }
  1704. else {
  1705. r7extend(((T7*)a1),'E');
  1706. }
  1707. /*FI*/r7extend(((T7*)a1),'\40');
  1708. r7append(((T7*)a1),r720run_time_mark(C));
  1709. }
  1710. void r720c_initialize_expanded(T720* C){
  1711. T0* _rf=NULL;
  1712. int _i=0;
  1713. T0* _wa=NULL;
  1714. /*IF*/if (r720is_dummy_expanded(C)) {
  1715. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1716. char b1='0';
  1717. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1718. }/*]*/
  1719. /*]*/
  1720. }
  1721. else {
  1722. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1723. char b1='\173';
  1724. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1725. }/*]*/
  1726. /*]*/
  1727. _wa=r355writable_attributes(((T355*)(r720run_class(C))));
  1728. _i=(((T280*)((T280*)_wa)))->_upper/*12*/;
  1729. while (!((_i)==(0))) {
  1730. _rf=r280item(((T280*)_wa),_i);
  1731. X291c_initialize((((T820*)((T820*)_rf)))->_result_type/*24*/);
  1732. _i=(_i)-(1);
  1733. /*IF*/if ((_i)>(0)) {
  1734. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1735. char b1='\54';
  1736. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1737. }/*]*/
  1738. /*]*/
  1739. }
  1740. /*FI*/}
  1741. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  1742. char b1='\175';
  1743. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  1744. }/*]*/
  1745. /*]*/
  1746. }
  1747. /*FI*/}
  1748. /*No:TYPE_GENERIC.is_real*/
  1749. int r720is_written_runnable(T720* C){
  1750. int R=0;
  1751. T0* _t=NULL;
  1752. int _i=0;
  1753. R=1;
  1754. _i=(((T701*)((T701*)((((T720*)C))->_generic_list/*8*/))))->_upper/*8*/;
  1755. while (!((!(R))||((_i)==(0)))) {
  1756. _t=r701item(((T701*)((((T720*)C))->_generic_list/*8*/)),_i);
  1757. /*IF*/if (X291is_run_type(_t)) {
  1758. /*IF*/if ((X291run_type(_t))==((void*)(_t))) {
  1759. }
  1760. else {
  1761. R=0;
  1762. }
  1763. /*FI*/}
  1764. else {
  1765. R=0;
  1766. }
  1767. /*FI*/_i=(_i)-(1);
  1768. }
  1769. return R;
  1770. }
  1771. T0* r720twin(T720* C){
  1772. T0* R=NULL;
  1773. R=malloc(sizeof(*C));
  1774. *((T720*)R)=*C;
  1775. return R;
  1776. }
  1777. /*No:TYPE_GENERIC.fz_bnga*/
  1778. void r720gc_info_nb_in(T720* C,T0* a1){
  1779. r7append(((T7*)a1),((T0*)ms59_291));
  1780. r2append_in(r720id(C),a1);
  1781. }
  1782. /*No:TYPE_GENERIC.fz_14*/
  1783. /*No:TYPE_GENERIC.is_bit*/
  1784. /*No:TYPE_GENERIC.fz_new*/
  1785. /*No:TYPE_GENERIC.fz_c_void_args*/
  1786. T0* r720smallest_ancestor(T720* C,T0* a1){
  1787. T0* R=NULL;
  1788. T0* _rto=NULL;
  1789. _rto=X291run_type(a1);
  1790. /*IF*/if (X291is_none(a1)) {
  1791. R=(T0*)C;
  1792. }
  1793.  else if (X291is_any(_rto)) {
  1794. R=_rto;
  1795. }
  1796.  else if (X291is_a(_rto,r720run_type(C))) {
  1797. R=(((T720*)C))->_run_type_memory/*16*/;
  1798. }
  1799. else {
  1800. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  1801. /*]*/
  1802. r38clear(((T38*)(oBC683positions)));
  1803. /*]*/
  1804. /*IF*/if (r720is_a(((T720*)(r720run_type(C))),_rto)) {
  1805. R=_rto;
  1806. }
  1807. else {
  1808. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
  1809. /*]*/
  1810. r38clear(((T38*)(oBC683positions)));
  1811. /*]*/
  1812. /*IF*/if (X291is_generic(_rto)) {
  1813. R=r720type_any();
  1814. }
  1815. else {
  1816. R=X291smallest_ancestor(_rto,(T0*)C);
  1817. }
  1818. /*FI*/}
  1819. /*FI*/}
  1820. /*FI*/return R;
  1821. }
  1822. /*No:TYPE_GENERIC.fz_16*/
  1823. void r720standard_gc_info_in(T720* C,T0* a1){
  1824. r7append(((T7*)a1),((T0*)ms119_470));
  1825. r7extend(((T7*)a1),'\50');
  1826. r7extend(((T7*)a1),'\42');
  1827. r7append(((T7*)a1),r720run_time_mark(C));
  1828. r7append(((T7*)a1),((T0*)ms144_470));
  1829. r720gc_info_nb_in(C,a1);
  1830. r7append(((T7*)a1),((T0*)ms148_470));
  1831. r7append(((T7*)a1),((T0*)ms119_470));
  1832. r7extend(((T7*)a1),'\50');
  1833. r7extend(((T7*)a1),'\42');
  1834. r720gcmt_used_in(C,a1);
  1835. r7append(((T7*)a1),((T0*)ms144_470));
  1836. r720gcmt_used_in(C,a1);
  1837. r7append(((T7*)a1),((T0*)ms148_470));
  1838. r7append(((T7*)a1),((T0*)ms119_470));
  1839. r7extend(((T7*)a1),'\50');
  1840. r7extend(((T7*)a1),'\42');
  1841. r720gcmt_max_in(C,a1);
  1842. r7append(((T7*)a1),((T0*)ms144_470));
  1843. r720gcmt_max_in(C,a1);
  1844. r7append(((T7*)a1),((T0*)ms148_470));
  1845. }
  1846. /*No:TYPE_GENERIC.is_boolean*/
  1847. void r720standard_c_typedef(T720* C){
  1848. int _mem_id=0;
  1849. _mem_id=r720id(C);
  1850. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291tmp_string)))))->_count)=(0);
  1851. /*]*/
  1852. /*IF*/if (r720need_c_struct(C)) {
  1853. r7append(((T7*)(oBC291tmp_string)),((T0*)ms131_470));
  1854. r7append(((T7*)(oBC291tmp_string)),((T0*)ms125_470));
  1855. r7extend(((T7*)(oBC291tmp_string)),'S');
  1856. r2append_in(_mem_id,oBC291tmp_string);
  1857. r7extend(((T7*)(oBC291tmp_string)),'\40');
  1858. r7extend(((T7*)(oBC291tmp_string)),'T');
  1859. r2append_in(_mem_id,oBC291tmp_string);
  1860. r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
  1861. }
  1862.  else if (r720is_dummy_expanded(C)) {
  1863. r7append(((T7*)(oBC291tmp_string)),((T0*)ms131_470));
  1864. r7append(((T7*)(oBC291tmp_string)),((T0*)ms111_470));
  1865. r7extend(((T7*)(oBC291tmp_string)),'\40');
  1866. r7extend(((T7*)(oBC291tmp_string)),'T');
  1867. r2append_in(_mem_id,oBC291tmp_string);
  1868. r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
  1869. }
  1870.  else if (r720is_reference(C)) {
  1871. r7append(((T7*)(oBC291tmp_string)),((T0*)ms131_470));
  1872. r7append(((T7*)(oBC291tmp_string)),((T0*)ms133_470));
  1873. r7extend(((T7*)(oBC291tmp_string)),'\52');
  1874. r7extend(((T7*)(oBC291tmp_string)),'T');
  1875. r2append_in(_mem_id,oBC291tmp_string);
  1876. r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
  1877. }
  1878. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  1879. /*]*/
  1880. }
  1881. T0*oBC720tmp_mark=NULL;
  1882. /*No:TYPE_GENERIC.is_double*/
  1883. T0* r720run_class(T720* C){
  1884. T0* R=NULL;
  1885. /*IF*/if (r720is_run_type(C)) {
  1886. R=r604run_class((((T720*)C))->_run_type_memory/*16*/);
  1887. }
  1888. /*FI*/return R;
  1889. }
  1890. /*No:TYPE_GENERIC.fz_extern*/
  1891. void r720gcmt_in(T720* C,T0* a1){
  1892. r7append(((T7*)a1),((T0*)ms54_291));
  1893. r2append_in(r720id(C),a1);
  1894. }
  1895. T0* r720run_time_mark(T720* C){
  1896. T0* R=NULL;
  1897. /*IF*/if (r720is_run_type(C)) {
  1898. R=(((T720*)((T720*)((((T720*)C))->_run_type_memory/*16*/))))->_written_mark/*12*/;
  1899. }
  1900. /*FI*/return R;
  1901. }
  1902. void r720c_initialize(T720* C){
  1903. /*IF*/if (r720is_expanded(((T720*)((((T720*)C))->_run_type_memory/*16*/)))) {
  1904. r720c_initialize_expanded(C);
  1905. }
  1906. else {
  1907. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms117_470));
  1908. /*]*/
  1909. }
  1910. /*FI*/}
  1911. void r720cast_to_ref(T720* C){
  1912. r720cast_to_ref(((T720*)(r720run_type(C))));
  1913. }
  1914. void r720gc_mark_in(T720* C,T0* a1){
  1915. r7append(((T7*)a1),((T0*)ms107_470));
  1916. r2append_in(r720id(C),a1);
  1917. }
  1918. int r720is_a_in(T720* C,T0* a1,T0* a2){
  1919. int R=0;
  1920. T0* _ct=NULL;
  1921. T0* _t2=NULL;
  1922. T0* _t1=NULL;
  1923. /*IF*/if (((((T720*)C))->_written_mark/*12*/)==((void*)(X291written_mark(a1)))) {
  1924. R=1;
  1925. }
  1926. else {
  1927. _ct=(((T355*)((T355*)a2)))->_current_type/*0*/;
  1928. _t1=r720to_runnable(C,_ct);
  1929. _t2=X291to_runnable(a1,_ct);
  1930. /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) {
  1931. R=1;
  1932. }
  1933. else {
  1934. R=X291is_a(_t1,_t2);
  1935. }
  1936. /*FI*/}
  1937. /*FI*/return R;
  1938. }
  1939. T0* r720look_up_for(T720* C,T0* a1,T0* a2){
  1940. T0* R=NULL;
  1941. R=r605look_up_for(((T605*)(r720base_class(C))),a1,a2);
  1942. return R;
  1943. }
  1944. /*No:TYPE_GENERIC.c_header_pass1*/
  1945. void r720c_type_for_result_in(T720* C,T0* a1){
  1946. /*IF*/if (r720is_reference(C)) {
  1947. r7append(((T7*)a1),((T0*)ms128_470));
  1948. }
  1949.  else if (r720is_dummy_expanded(C)) {
  1950. r7append(((T7*)a1),((T0*)ms111_470));
  1951. }
  1952. else {
  1953. r7extend(((T7*)a1),'T');
  1954. r2append_in(r720id(C),a1);
  1955. }
  1956. /*FI*/}
  1957. T0* r720expanded_initializer(T720* C){
  1958. T0* R=NULL;
  1959. /*IF*/if (r720is_expanded(C)) {
  1960. R=r605expanded_initializer(((T605*)(r720base_class(C))),(T0*)C);
  1961. }
  1962. /*FI*/return R;
  1963. }
  1964. /*No:TYPE_GENERIC.fz_int*/
  1965. void r720gc_declare_h_in(T720* C,T0* a1){
  1966. r7append(((T7*)a1),((T0*)ms105_470));
  1967. r2append_in(r720id(C),a1);
  1968. r7append(((T7*)a1),((T0*)ms60_291));
  1969. r2append_in(r720id(C),a1);
  1970. r7append(((T7*)a1),((T0*)ms61_291));
  1971. }
  1972. void r720standard_gc_define1(T720* C){
  1973. int _rcid=0;
  1974. T0* _rc=NULL;
  1975. _rc=r720run_class(C);
  1976. _rcid=(((T355*)((T355*)_rc)))->_id/*4*/;
  1977. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms131_470));
  1978. r7append(((T7*)(oBC291tmp_string)),((T0*)ms125_470));
  1979. r7extend(((T7*)(oBC291tmp_string)),'B');
  1980. r2append_in(_rcid,oBC291tmp_string);
  1981. r7extend(((T7*)(oBC291tmp_string)),'\40');
  1982. r7append(((T7*)(oBC291tmp_string)),((T0*)ms105_470));
  1983. r2append_in(_rcid,oBC291tmp_string);
  1984. r7append(((T7*)(oBC291tmp_string)),((T0*)ms134_470));
  1985. r7append(((T7*)(oBC291tmp_string)),((T0*)ms125_470));
  1986. r7extend(((T7*)(oBC291tmp_string)),'B');
  1987. r2append_in(_rcid,oBC291tmp_string);
  1988. r7append(((T7*)(oBC291tmp_string)),((T0*)ms13_291));
  1989. r2append_in(_rcid,oBC291tmp_string);
  1990. r7append(((T7*)(oBC291tmp_string)),((T0*)ms14_291));
  1991. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),oBC291tmp_string);
  1992. /*]*/
  1993. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms105_470));
  1994. r2append_in(_rcid,oBC291tmp_string);
  1995. r7extend(((T7*)(oBC291tmp_string)),'\52');
  1996. r7extend(((T7*)(oBC291tmp_string)),'\52');
  1997. r720gcmt_in(C,oBC291tmp_string);
  1998. r324put_extern1(((T324*)(oBC364cpp)),oBC291tmp_string);
  1999. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms111_470));
  2000. r7extend(((T7*)(oBC291tmp_string)),'\40');
  2001. r720gcmt_used_in(C,oBC291tmp_string);
  2002. r324put_extern2(((T324*)(oBC364cpp)),oBC291tmp_string,'0');
  2003. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms111_470));
  2004. r7extend(((T7*)(oBC291tmp_string)),'\40');
  2005. r720gcmt_max_in(C,oBC291tmp_string);
  2006. r324put_extern2(((T324*)(oBC364cpp)),oBC291tmp_string,'8');
  2007. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms105_470));
  2008. r2append_in(_rcid,oBC291tmp_string);
  2009. r7extend(((T7*)(oBC291tmp_string)),'\52');
  2010. r720gc_free_in(C,oBC291tmp_string);
  2011. r324put_extern5(((T324*)(oBC364cpp)),oBC291tmp_string,((T0*)ms117_470));
  2012. /*IF*/if ((((T548*)((T548*)(oBC364gc_handler))))->_info_flag/*4*/) {
  2013. r7copy(((T7*)(oBC291tmp_string)),((T0*)ms111_470));
  2014. r7extend(((T7*)(oBC291tmp_string)),'\40');
  2015. r720gc_info_nb_in(C,oBC291tmp_string);
  2016. r324put_extern2(((T324*)(oBC364cpp)),oBC291tmp_string,'0');
  2017. }
  2018. /*FI*/}
  2019. /*No:TYPE_GENERIC.fz_void*/
  2020. /*No:TYPE_GENERIC.fz_dot*/
  2021. /*No:TYPE_GENERIC.is_generic*/
  2022. /*No:TYPE_GENERIC.fz_bga*/
  2023. /*No:TYPE_GENERIC.used_as_reference*/
  2024. int r720space_for_integer(void){
  2025. int R=0;
  2026. R=sizeof(T2);
  2027. return R;
  2028. }
  2029. /*No:TYPE_GENERIC.c_header_pass2*/
  2030. /*No:TYPE_GENERIC.gc_define1*/
  2031. int r720need_c_struct(T720* C){
  2032. int R=0;
  2033. /*IF*/if (r720is_dummy_expanded(C)) {
  2034. }
  2035.  else if (r720is_expanded(C)) {
  2036. R=1;
  2037. }
  2038.  else if (r355is_tagged(((T355*)(r720run_class(C))))) {
  2039. R=1;
  2040. }
  2041. else {
  2042. R=(r355writable_attributes(((T355*)(r720run_class(C)))))!=((void*)(NULL));
  2043. }
  2044. /*FI*/return R;
  2045. }
  2046. /*No:TYPE_GENERIC.gc_info_in*/
  2047. int r720is_reference(T720* C){
  2048. int R=0;
  2049. R=!((((T605*)((T605*)(r720base_class(C)))))->_is_expanded/*20*/);
  2050. return R;
  2051. }
  2052. T0* r720base_class(T720* C){
  2053. T0* R=NULL;
  2054. T0* _bcn=NULL;
  2055. _bcn=(((T720*)C))->_base_class_name/*4*/;
  2056. /*IF*/if ((_bcn)!=((void*)(NULL))) {
  2057. R=r451base_class(((T451*)_bcn));
  2058. }
  2059. else {
  2060. /*[IRF3.6append*/{T0* b1=((T0*)ms3_291);
  2061. r7append(((T7*)(oBC683explanation)),b1);
  2062. }/*]*/
  2063. r683add_type((T0*)C,((T0*)ms67_470));
  2064. r683print_as_fatal_error(((T683*)(oBC364eh)));
  2065. }
  2066. /*FI*/return R;
  2067. }
  2068. void r720call_gc_sweep_in(T720* C,T0* a1){
  2069. /*IF*/if (r720is_reference(C)) {
  2070. r720standard_call_gc_sweep_in(C,a1);
  2071. }
  2072. /*FI*/}
  2073. /*No:TYPE_GENERIC.gc_define2*/
  2074. int r720need_gc_mark_function(T720* C){
  2075. int R=0;
  2076. /*IF*/if (r720is_reference(C)) {
  2077. R=1;
  2078. }
  2079. else {
  2080. R=r355gc_mark_to_follow(((T355*)(r720run_class(C))));
  2081. }
  2082. /*FI*/return R;
  2083. }
  2084. /*No:TYPE_GENERIC.fatal_error*/
  2085. void r720standard_gc_define2(T720* C){
  2086. int _rcid=0;
  2087. T0* _rc=NULL;
  2088. _rc=r720run_class(C);
  2089. _rcid=(((T355*)((T355*)_rc)))->_id/*4*/;
  2090. r7copy(((T7*)(oBC291header)),((T0*)ms133_470));
  2091. r7extend(((T7*)(oBC291header)),'\40');
  2092. r7append(((T7*)(oBC291header)),((T0*)ms109_470));
  2093. r2append_in(_rcid,oBC291header);
  2094. r7extend(((T7*)(oBC291header)),'\50');
  2095. r7append(((T7*)(oBC291header)),((T0*)ms105_470));
  2096. r2append_in(_rcid,oBC291header);
  2097. r7extend(((T7*)(oBC291header)),'\52');
  2098. r7extend(((T7*)(oBC291header)),'b');
  2099. r7extend(((T7*)(oBC291header)),'\54');
  2100. r7append(((T7*)(oBC291header)),((T0*)ms105_470));
  2101. r2append_in(_rcid,oBC291header);
  2102. r7extend(((T7*)(oBC291header)),'\52');
  2103. r7extend(((T7*)(oBC291header)),'h');
  2104. r7extend(((T7*)(oBC291header)),'\51');
  2105. r7copy(((T7*)(oBC291body)),((T0*)ms15_291));
  2106. /*[IRF3.6gc_if_marked_in*/{T0* b1=oBC291body;
  2107. r7append(((T7*)b1),((T0*)ms64_291));
  2108. }/*]*/
  2109. /*[IRF3.6gc_set_unmarked_in*/{T0* b1=oBC291body;
  2110. r7append(((T7*)b1),((T0*)ms63_291));
  2111. }/*]*/
  2112. r7extend(((T7*)(oBC291body)),'\175');
  2113. r7append(((T7*)(oBC291body)),((T0*)ms10_470));
  2114. r7extend(((T7*)(oBC291body)),'\n');
  2115. /*[IRF3.6gc_if_unmarked_in*/{T0* b1=oBC291body;
  2116. r7append(((T7*)b1),((T0*)ms65_291));
  2117. }/*]*/
  2118. r7append(((T7*)(oBC291body)),((T0*)ms16_291));
  2119. r720gc_free_in(C,oBC291body);
  2120. r7append(((T7*)(oBC291body)),((T0*)ms17_291));
  2121. r720gc_free_in(C,oBC291body);
  2122. r7append(((T7*)(oBC291body)),((T0*)ms18_291));
  2123. /*IF*/if (r720need_c_struct(C)) {
  2124. r7append(((T7*)(oBC291body)),((T0*)ms19_291));
  2125. r2append_in(_rcid,oBC291body);
  2126. r7append(((T7*)(oBC291body)),((T0*)ms134_470));
  2127. }
  2128. /*FI*/r7append(((T7*)(oBC291body)),((T0*)ms20_291));
  2129. r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
  2130. r7copy(((T7*)(oBC291header)),((T0*)ms133_470));
  2131. r7extend(((T7*)(oBC291header)),'\40');
  2132. r7append(((T7*)(oBC291header)),((T0*)ms108_470));
  2133. r2append_in(_rcid,oBC291header);
  2134. r7append(((T7*)(oBC291header)),((T0*)ms97_470));
  2135. r7copy(((T7*)(oBC291body)),((T0*)ms21_291));
  2136. r2append_in(_rcid,oBC291body);
  2137. r7append(((T7*)(oBC291body)),((T0*)ms22_291));
  2138. r720gcmt_in(C,oBC291body);
  2139. r7extend(((T7*)(oBC291body)),'\53');
  2140. r720gcmt_used_in(C,oBC291body);
  2141. r7append(((T7*)(oBC291body)),((T0*)ms23_291));
  2142. r720gcmt_used_in(C,oBC291body);
  2143. r7append(((T7*)(oBC291body)),((T0*)ms24_291));
  2144. r7append(((T7*)(oBC291body)),((T0*)ms25_291));
  2145. r2append_in(_rcid,oBC291body);
  2146. r7append(((T7*)(oBC291body)),((T0*)ms26_291));
  2147. r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
  2148. r7copy(((T7*)(oBC291header)),((T0*)ms133_470));
  2149. r7extend(((T7*)(oBC291header)),'\40');
  2150. r720gc_mark_in(C,oBC291header);
  2151. r7extend(((T7*)(oBC291header)),'\50');
  2152. r7extend(((T7*)(oBC291header)),'T');
  2153. r2append_in(_rcid,oBC291header);
  2154. r7extend(((T7*)(oBC291header)),'\52');
  2155. r7extend(((T7*)(oBC291header)),'o');
  2156. r7extend(((T7*)(oBC291header)),'\51');
  2157. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291body)))))->_count)=(0);
  2158. /*]*/
  2159. r720gc_declare_h_in(C,oBC291body);
  2160. /*[IRF3.6gc_if_unmarked_in*/{T0* b1=oBC291body;
  2161. r7append(((T7*)b1),((T0*)ms65_291));
  2162. }/*]*/
  2163. /*[IRF3.6gc_set_marked_in*/{T0* b1=oBC291body;
  2164. r7append(((T7*)b1),((T0*)ms62_291));
  2165. }/*]*/
  2166. /*IF*/if (r355gc_mark_to_follow(((T355*)_rc))) {
  2167. r355gc_mark_in(((T355*)_rc),oBC291body);
  2168. }
  2169. /*FI*/r7extend(((T7*)(oBC291body)),'\175');
  2170. r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
  2171. r7copy(((T7*)(oBC291header)),((T0*)ms133_470));
  2172. r7extend(((T7*)(oBC291header)),'\40');
  2173. r720gc_align_mark_in(C,oBC291header);
  2174. r7extend(((T7*)(oBC291header)),'\50');
  2175. r7extend(((T7*)(oBC291header)),'T');
  2176. r2append_in(_rcid,oBC291header);
  2177. r7extend(((T7*)(oBC291header)),'\52');
  2178. r7extend(((T7*)(oBC291header)),'o');
  2179. r7extend(((T7*)(oBC291header)),'\54');
  2180. r7append(((T7*)(oBC291header)),((T0*)ms105_470));
  2181. r2append_in(_rcid,oBC291header);
  2182. r7extend(((T7*)(oBC291header)),'\52');
  2183. r7extend(((T7*)(oBC291header)),'B');
  2184. r7extend(((T7*)(oBC291header)),'\51');
  2185. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291body)))))->_count)=(0);
  2186. /*]*/
  2187. r720gc_declare_h_in(C,oBC291body);
  2188. r7append(((T7*)(oBC291body)),((T0*)ms27_291));
  2189. r720gc_mark_in(C,oBC291body);
  2190. r7append(((T7*)(oBC291body)),((T0*)ms28_291));
  2191. r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
  2192. r7copy(((T7*)(oBC291header)),((T0*)ms133_470));
  2193. r7extend(((T7*)(oBC291header)),'\40');
  2194. r7append(((T7*)(oBC291header)),((T0*)ms116_470));
  2195. r2append_in(_rcid,oBC291header);
  2196. r7append(((T7*)(oBC291header)),((T0*)ms97_470));
  2197. r7copy(((T7*)(oBC291body)),((T0*)ms29_291));
  2198. r2append_in(_rcid,oBC291body);
  2199. r7append(((T7*)(oBC291body)),((T0*)ms30_291));
  2200. r720gcmt_used_in(C,oBC291body);
  2201. r7append(((T7*)(oBC291body)),((T0*)ms31_291));
  2202. /*IF*/if (r355is_tagged(((T355*)_rc))) {
  2203. r7append(((T7*)(oBC291body)),((T0*)ms32_291));
  2204. r2append_in(_rcid,oBC291body);
  2205. r7append(((T7*)(oBC291body)),((T0*)ms134_470));
  2206. }
  2207. /*FI*/r7append(((T7*)(oBC291body)),((T0*)ms33_291));
  2208. r720gcmt_max_in(C,oBC291body);
  2209. r7append(((T7*)(oBC291body)),((T0*)ms34_291));
  2210. r720gcmt_max_in(C,oBC291body);
  2211. r7append(((T7*)(oBC291body)),((T0*)ms35_291));
  2212. r720gcmt_in(C,oBC291body);
  2213. r7append(((T7*)(oBC291body)),((T0*)ms36_291));
  2214. r720gcmt_in(C,oBC291body);
  2215. r7append(((T7*)(oBC291body)),((T0*)ms37_291));
  2216. r720gcmt_max_in(C,oBC291body);
  2217. r7append(((T7*)(oBC291body)),((T0*)ms38_291));
  2218. r720gcmt_in(C,oBC291body);
  2219. r7append(((T7*)(oBC291body)),((T0*)ms39_291));
  2220. r720gc_free_in(C,oBC291body);
  2221. r7append(((T7*)(oBC291body)),((T0*)ms40_291));
  2222. r7append(((T7*)(oBC291body)),((T0*)ms41_291));
  2223. r720gc_align_mark_in(C,oBC291body);
  2224. r7append(((T7*)(oBC291body)),((T0*)ms42_291));
  2225. r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
  2226. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC291header)))))->_count)=(0);
  2227. /*]*/
  2228. r7extend(((T7*)(oBC291header)),'T');
  2229. r2append_in(_rcid,oBC291header);
  2230. r7extend(((T7*)(oBC291header)),'\52');
  2231. r7append(((T7*)(oBC291header)),((T0*)ms115_470));
  2232. r2append_in(_rcid,oBC291header);
  2233. r7append(((T7*)(oBC291header)),((T0*)ms97_470));
  2234. r7copy(((T7*)(oBC291body)),((T0*)ms105_470));
  2235. r2append_in(_rcid,oBC291body);
  2236. r7append(((T7*)(oBC291body)),((T0*)ms43_291));
  2237. /*IF*/if ((((T548*)((T548*)(oBC364gc_handler))))->_info_flag/*4*/) {
  2238. r720gc_info_nb_in(C,oBC291body);
  2239. r7append(((T7*)(oBC291body)),((T0*)ms44_291));
  2240. }
  2241. /*FI*/r7append(((T7*)(oBC291body)),((T0*)ms45_291));
  2242. r720gc_free_in(C,oBC291body);
  2243. r7append(((T7*)(oBC291body)),((T0*)ms46_291));
  2244. r2append_in(r548threshold_start(_rcid),oBC291body);
  2245. r7extend(((T7*)(oBC291body)),'\74');
  2246. r720gcmt_used_in(C,oBC291body);
  2247. r7append(((T7*)(oBC291body)),((T0*)ms47_291));
  2248. r7append(((T7*)(oBC291body)),((T0*)ms89_470));
  2249. r720gc_free_in(C,oBC291body);
  2250. r7append(((T7*)(oBC291body)),((T0*)ms48_291));
  2251. r2append_in(_rcid,oBC291body);
  2252. r7append(((T7*)(oBC291body)),((T0*)ms49_291));
  2253. r720gc_free_in(C,oBC291body);
  2254. r7append(((T7*)(oBC291body)),((T0*)ms50_291));
  2255. r720gc_free_in(C,oBC291body);
  2256. r7append(((T7*)(oBC291body)),((T0*)ms51_291));
  2257. /*[IRF3.6gc_set_unmarked_in*/{T0* b1=oBC291body;
  2258. r7append(((T7*)b1),((T0*)ms63_291));
  2259. }/*]*/
  2260. r7append(((T7*)(oBC291body)),((T0*)ms52_291));
  2261. r324put_c_function(((T324*)(oBC364cpp)),oBC291header,oBC291body);
  2262. }
  2263. /*No:TYPE_GENERIC.is_any*/
  2264. /*No:TYPE_GENERIC.to_reference*/
  2265. void r720c_header_pass3(T720* C){
  2266. /*IF*/if (r720is_expanded(C)) {
  2267. /*IF*/if (r720need_c_struct(C)) {
  2268. r720standard_c_struct(C);
  2269. r720standard_c_object_model(C);
  2270. }
  2271. /*FI*/}
  2272. /*FI*/}
  2273. /*No:TYPE_GENERIC.fz_new_pool*/
  2274. /*No:TYPE_GENERIC.base_class_name*/
  2275. int r720is_expanded(T720* C){
  2276. int R=0;
  2277. R=(((T605*)((T605*)(r720base_class(C)))))->_is_expanded/*20*/;
  2278. return R;
  2279. }
  2280. void r720standard_call_gc_sweep_in(T720* C,T0* a1){
  2281. r7append(((T7*)a1),((T0*)ms108_470));
  2282. r2append_in(r720id(C),a1);
  2283. r7extend(((T7*)a1),'\50');
  2284. r7extend(((T7*)a1),'\51');
  2285. r7append(((T7*)a1),((T0*)ms134_470));
  2286. }
  2287. /*No:TYPE_GENERIC.gc_if_unmarked_in*/
  2288. /*No:TYPE_GENERIC.is_basic_eiffel_expanded*/
  2289. /*No:TYPE_GENERIC.is_none*/
  2290. /*No:TYPE_GENERIC.to_expanded*/
  2291. /*No:TYPE_GENERIC.is_integer*/
  2292. void r720make_runnable(T720* C,T0* a1,T0* a2){
  2293. T0* _t=NULL;
  2294. int _i=0;
  2295. C->_base_class_name=(((T720*)((T720*)a1)))->_base_class_name/*4*/;
  2296. C->_generic_list=a2;
  2297. r7copy(((T7*)(oBC720tmp_mark)),(((T451*)((T451*)((((T720*)C))->_base_class_name/*4*/))))->_to_string/*0*/);
  2298. r7extend(((T7*)(oBC720tmp_mark)),'\133');
  2299. _i=1;
  2300. while (!((_i)>((((T701*)((T701*)a2)))->_upper/*8*/))) {
  2301. _t=r701item(((T701*)a2),_i);
  2302. r7append(((T7*)(oBC720tmp_mark)),X291run_time_mark(_t));
  2303. _i=(_i)+(1);
  2304. /*IF*/if ((_i)<=((((T701*)((T701*)a2)))->_upper/*8*/)) {
  2305. r7extend(((T7*)(oBC720tmp_mark)),'\54');
  2306. }
  2307. /*FI*/}
  2308. r7extend(((T7*)(oBC720tmp_mark)),'\135');
  2309. C->_written_mark=r902item(oBC720tmp_mark);
  2310. C->_run_type_memory=(T0*)C;
  2311. }
  2312. void r720c_header_pass4(T720* C){
  2313. /*IF*/if (r720is_reference(C)) {
  2314. /*IF*/if (r720need_c_struct(C)) {
  2315. r720standard_c_struct(C);
  2316. r720standard_c_object_model(C);
  2317. }
  2318. /*FI*/}
  2319. /*FI*/}
  2320. /*No:TYPE_GENERIC.fz_struct*/
  2321. void r680c_mapping_procedure_non_small_eiffel(T0* a1,T0* a2){
  2322. int _bfuc=0;
  2323. T0* _bf=NULL;
  2324. _bf=(((T906*)((T906*)a1)))->_base_feature/*44*/;
  2325. _bfuc=r883use_current(((T883*)_bf));
  2326. /*IF*/if ((!(_bfuc))&&(r324target_cannot_be_dropped(((T324*)(oBC364cpp))))) {
  2327. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms148_470));
  2328. /*]*/
  2329. }
  2330. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),r883external_c_name(((T883*)_bf)));
  2331. /*]*/
  2332. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2333. char b1='\50';
  2334. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2335. }/*]*/
  2336. /*]*/
  2337. /*IF*/if (_bfuc) {
  2338. r324put_target_as_value(((T324*)(oBC364cpp)));
  2339. }
  2340. /*FI*//*IF*/if ((r906arg_count(((T906*)a1)))>(0)) {
  2341. /*IF*/if (_bfuc) {
  2342. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2343. char b1='\54';
  2344. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2345. }/*]*/
  2346. /*]*/
  2347. }
  2348. /*FI*/r324put_arguments(((T324*)(oBC364cpp)));
  2349. }
  2350. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms148_470));
  2351. /*]*/
  2352. }
  2353. void r680c_mapping_function_non_small_eiffel(T0* a1,T0* a2){
  2354. int _tcbd=0;
  2355. int _bfuc=0;
  2356. T0* _bf=NULL;
  2357. _bf=(((T892*)((T892*)a1)))->_base_feature/*48*/;
  2358. _bfuc=r679use_current(((T679*)_bf));
  2359. /*IF*/if (!(_bfuc)) {
  2360. _tcbd=r324target_cannot_be_dropped(((T324*)(oBC364cpp)));
  2361. /*IF*/if (_tcbd) {
  2362. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2363. char b1='\54';
  2364. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2365. }/*]*/
  2366. /*]*/
  2367. }
  2368. /*FI*/}
  2369. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),r679external_c_name(((T679*)_bf)));
  2370. /*]*/
  2371. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2372. char b1='\50';
  2373. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2374. }/*]*/
  2375. /*]*/
  2376. /*IF*/if (_bfuc) {
  2377. r324put_target_as_value(((T324*)(oBC364cpp)));
  2378. }
  2379. /*FI*//*IF*/if ((r892arg_count(((T892*)a1)))>(0)) {
  2380. /*IF*/if (_bfuc) {
  2381. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2382. char b1='\54';
  2383. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2384. }/*]*/
  2385. /*]*/
  2386. }
  2387. /*FI*/r324put_arguments(((T324*)(oBC364cpp)));
  2388. }
  2389. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2390. char b1='\51';
  2391. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2392. }/*]*/
  2393. /*]*/
  2394. /*IF*/if ((!(_bfuc))&&(_tcbd)) {
  2395. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2396. char b1='\51';
  2397. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2398. }/*]*/
  2399. /*]*/
  2400. }
  2401. /*FI*/}
  2402. /*No:NATIVE_INLINE_WITHOUT_CURRENT.c_define_function*/
  2403. /*No:NATIVE_INLINE_WITHOUT_CURRENT.fz_14*/
  2404. /*No:NATIVE_INLINE_WITHOUT_CURRENT.c_define_procedure*/
  2405. /*No:NATIVE_INLINE_WITHOUT_CURRENT.stupid_switch*/
  2406. /*No:NATIVE_INLINE_WITHOUT_CURRENT.c_mapping_procedure*/
  2407. /*No:NATIVE_INLINE_WITHOUT_CURRENT.c_mapping_function*/
  2408. /*No:NATIVE_INLINE_WITHOUT_CURRENT.use_current*/
  2409. /*No:STD_ERROR.make*/
  2410. T0*oBC817tmp_string=NULL;
  2411. /*No:STD_ERROR.flush*/
  2412. void r441put_string(T441* C,T0* a1){
  2413. int _i=0;
  2414. _i=1;
  2415. while (!((_i)>((((T7*)((T7*)a1)))->_count/*4*/))) {
  2416. /*[IRF3.6put_character*/{T441* C1=C;
  2417. char b1=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(_i)-(1)]/*)*/;
  2418. putc(b1,((FILE*)(stderr)));
  2419. }/*]*/
  2420. _i=(_i)+(1);
  2421. }
  2422. }
  2423. void r441put_integer(T441* C,int a1){
  2424. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC817tmp_string)))))->_count)=(0);
  2425. /*]*/
  2426. r2append_in(a1,oBC817tmp_string);
  2427. r441put_string(C,oBC817tmp_string);
  2428. }
  2429. /*No:STD_ERROR.put_character*/
  2430. /*No:STD_ERROR.put_new_line*/
  2431. void r64make(T64* C,T0* a1,T0* a2){
  2432. int _i=0;
  2433. C->_name_list=a1;
  2434. _i=/*X27*/((int)(((T733*)((T733*)((((T64*)C))->_name_list/*4*/))))->_upper/*12*/);
  2435. while (!((_i)==(0))) {
  2436. /*X361*//*[IRF3.3set_result_type*/((((T886*)(((T886*)(/*X27*/((T0*)r733item(((T733*)((((T64*)C))->_name_list/*4*/)),_i)))))))->_result_type)=(a2);
  2437. /*]*/
  2438. _i=(_i)-(1);
  2439. }
  2440. }
  2441. void r64append_in(T64* C,T0* a1){
  2442. int _i=0;
  2443. _i=/*X27*/((int)(((T733*)((T733*)((((T64*)C))->_name_list/*4*/))))->_lower/*16*/);
  2444. while (!((_i)>(/*X27*/((int)(((T733*)((T733*)((((T64*)C))->_name_list/*4*/))))->_upper/*12*/)))) {
  2445. X535add_last(a1,/*X27*/((T0*)r733item(((T733*)((((T64*)C))->_name_list/*4*/)),_i)));
  2446. _i=(_i)+(1);
  2447. }
  2448. }
  2449. int r64count(T64* C){
  2450. int R=0;
  2451. R=/*X27*/((int)(((T733*)((T733*)((((T64*)C))->_name_list/*4*/))))->_upper/*12*/);
  2452. return R;
  2453. }
  2454. /*No:DECLARATION_GROUP.name_list*/
  2455. T0* r420add_comment(T420* C,T0* a1){
  2456. T0* R=NULL;
  2457. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  2458. R=(T0*)C;
  2459. }
  2460. else {
  2461. {T529*n=malloc(sizeof(*n));
  2462. *n=M529;
  2463. r529make(n,(T0*)C,a1);
  2464. R=(T0*)n;
  2465. }
  2466. }
  2467. /*FI*/return R;
  2468. }
  2469. int r420to_integer(T420* C){
  2470. int R=0;
  2471. r420error(r420start_position(C),((T0*)ms69_470));
  2472. return R;
  2473. }
  2474. int r420is_a(T420* C,T0* a1){
  2475. int R=0;
  2476. R=r709is_a(((T709*)((((T709*)((T709*)(r420result_type()))))->_run_type/*16*/)),X291run_type(X662result_type(a1)));
  2477. /*IF*/if (!(R)) {
  2478. r683add_position(r420start_position(C));
  2479. r420error(X662start_position(a1),((T0*)ms4_662));
  2480. }
  2481. /*FI*/return R;
  2482. }
  2483. /*No:E_STRIP.is_current*/
  2484. /*No:E_STRIP.mapping_c_arg*/
  2485. /*No:E_STRIP.static_value*/
  2486. void r420make(T420* C,T0* a1,T0* a2){
  2487. /*IF*/if ((a2)!=((void*)(NULL))) {
  2488. {T953*n=malloc(sizeof(*n));
  2489. *n=M953;
  2490. r953make(n,a2);
  2491. C->_list=(T0*)n;
  2492. }
  2493. }
  2494. /*FI*/}
  2495. /*No:E_STRIP.mapping_c_target*/
  2496. /*No:E_STRIP.fz_iinaiv*/
  2497. T0* r420type_any(void){
  2498. if (fBC364type_any==0){
  2499. T0* R=NULL;
  2500. fBC364type_any=1;
  2501. {T669*n=malloc(sizeof(*n));
  2502. *n=M669;
  2503. r669make(n,NULL);
  2504. R=(T0*)n;
  2505. }
  2506. oBC364type_any=R;}
  2507. return oBC364type_any;}
  2508. /*No:E_STRIP.dca_inline_argument*/
  2509. T0* r420start_position(T420* C){
  2510. T0* R=NULL;
  2511. /*IF*/if (((((T420*)C))->_list/*8*/)!=((void*)(NULL))) {
  2512. R=X776start_position(/*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T420*)C))->_list/*8*/))))->_list/*0*/)),1)/*)*/);
  2513. }
  2514. /*FI*/return R;
  2515. }
  2516. /*No:E_STRIP.compile_to_c*/
  2517. /*No:E_STRIP.c_simple*/
  2518. T0* r420to_runnable(T420* C,T0* a1){
  2519. T0* R=NULL;
  2520. r420error(r420start_position(C),((T0*)ms2_420));
  2521. return R;
  2522. }
  2523. int fBC420result_type=0;
  2524. T0*oBC420result_type=NULL;
  2525. T0* r420result_type(void){
  2526. if (fBC420result_type==0){
  2527. T0* R=NULL;
  2528. fBC420result_type=1;
  2529. {T709*n=malloc(sizeof(*n));
  2530. *n=M709;
  2531. r709make(n,NULL,r420type_any());
  2532. R=(T0*)n;
  2533. }
  2534. oBC420result_type=R;}
  2535. return oBC420result_type;}
  2536. /*No:E_STRIP.is_result*/
  2537. /*No:E_STRIP.is_static*/
  2538. /*No:E_STRIP.list*/
  2539. /*No:E_STRIP.can_be_dropped*/
  2540. /*No:E_STRIP.compile_to_c_old*/
  2541. /*No:E_STRIP.static_value_mem*/
  2542. /*No:E_STRIP.is_manifest_string*/
  2543. /*No:E_STRIP.is_void*/
  2544. /*No:E_STRIP.is_pre_computable*/
  2545. /*No:E_STRIP.use_current*/
  2546. void r420error(T0* a1,T0* a2){
  2547. r683add_position(a1);
  2548. r683error(((T683*)(oBC364eh)),a2);
  2549. }
  2550. /*No:E_STRIP.isa_dca_inline_argument*/
  2551. /*No:E_STRIP.afd_check*/
  2552. void r517error_comparison(T517* C,T0* a1){
  2553. r683add_position((((T454*)((T454*)((((T517*)C))->_feature_name/*28*/))))->_start_position/*8*/);
  2554. /*[IRF3.6append*/{T0* b1=((T0*)ms7_841);
  2555. r7append(((T7*)(oBC683explanation)),b1);
  2556. }/*]*/
  2557. /*[IRF3.6append*/{T0* b1=a1;
  2558. r7append(((T7*)(oBC683explanation)),b1);
  2559. }/*]*/
  2560. /*[IRF3.6append*/{T0* b1=((T0*)ms8_841);
  2561. r7append(((T7*)(oBC683explanation)),b1);
  2562. }/*]*/
  2563. r683add_type((((T517*)C))->_current_type/*8*/,((T0*)ms67_470));
  2564. r683print_as_error(((T683*)(oBC364eh)));
  2565. }
  2566. /*No:CALL_INFIX_NEQ.arguments*/
  2567. T0* r517add_comment(T517* C,T0* a1){
  2568. T0* R=NULL;
  2569. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  2570. R=(T0*)C;
  2571. }
  2572. else {
  2573. {T529*n=malloc(sizeof(*n));
  2574. *n=M529;
  2575. r529make(n,(T0*)C,a1);
  2576. R=(T0*)n;
  2577. }
  2578. }
  2579. /*FI*/return R;
  2580. }
  2581. int r517to_integer(T517* C){
  2582. int R=0;
  2583. r517error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T517*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470));
  2584. return R;
  2585. }
  2586. int r517is_a(T517* C,T0* a1){
  2587. int R=0;
  2588. R=X291is_a(X291run_type((((T517*)C))->_result_type/*20*/),X291run_type(X662result_type(a1)));
  2589. /*IF*/if (!(R)) {
  2590. r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T517*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/);
  2591. r517error(X662start_position(a1),((T0*)ms4_662));
  2592. }
  2593. /*FI*/return R;
  2594. }
  2595. void r517cmp_bit(T517* C,int a1,T0* a2){
  2596. T0* _tb=NULL;
  2597. _tb=a2;
  2598. if(NULL!=(_tb))switch(((T0*)_tb)->id) {
  2599. case 549: case 558: 
  2600. break;
  2601. default:
  2602. _tb=NULL;
  2603. };/*IF*/if (X609is_c_unsigned_ptr(_tb)) {
  2604. /*IF*/if (a1) {
  2605. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2606. char b1='\41';
  2607. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2608. }/*]*/
  2609. /*]*/
  2610. }
  2611. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms12_841));
  2612. /*]*/
  2613. X662mapping_c_arg((((T517*)C))->_target/*12*/,a2);
  2614. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms13_841));
  2615. /*]*/
  2616. X662mapping_c_arg(r517arg1(C),a2);
  2617. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms14_841));
  2618. /*]*/
  2619. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),X609space_for_variable(_tb));
  2620. /*]*/
  2621. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms15_841));
  2622. /*]*/
  2623. }
  2624. else {
  2625. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2626. char b1='\50';
  2627. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2628. }/*]*/
  2629. /*]*/
  2630. X662compile_to_c((((T517*)C))->_target/*12*/);
  2631. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2632. char b1='\51';
  2633. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2634. }/*]*/
  2635. /*]*/
  2636. /*IF*/if (a1) {
  2637. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms87_470));
  2638. /*]*/
  2639. }
  2640. else {
  2641. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms92_470));
  2642. /*]*/
  2643. }
  2644. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2645. char b1='\50';
  2646. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2647. }/*]*/
  2648. /*]*/
  2649. X662compile_to_c(r517arg1(C));
  2650. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2651. char b1='\51';
  2652. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2653. }/*]*/
  2654. /*]*/
  2655. }
  2656. /*FI*/}
  2657. void r517c2c_exp_ref(T0* a1,T0* a2,T0* a3,T0* a4){
  2658. /*IF*/if (X662is_void(a3)) {
  2659. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms2_517));
  2660. /*]*/
  2661. X662compile_to_c(a3);
  2662. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms3_517));
  2663. /*]*/
  2664. }
  2665. else {
  2666. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms4_517));
  2667. /*]*/
  2668. X662compile_to_c(a1);
  2669. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms5_517));
  2670. /*]*/
  2671. X662compile_to_c(a3);
  2672. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms6_517));
  2673. /*]*/
  2674. }
  2675. /*FI*/}
  2676. /*No:CALL_INFIX_NEQ.is_current*/
  2677. void r517mapping_c_arg(T517* C,T0* a1){
  2678. T0* _actual_type=NULL;
  2679. _actual_type=X291run_type((((T517*)C))->_result_type/*20*/);
  2680. /*IF*/if (X291is_reference(_actual_type)) {
  2681. /*IF*/if (X291is_reference(a1)) {
  2682. r517compile_to_c(C);
  2683. }
  2684. else {
  2685. X291to_expanded(_actual_type);
  2686. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2687. char b1='\50';
  2688. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2689. }/*]*/
  2690. /*]*/
  2691. r517compile_to_c(C);
  2692. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2693. char b1='\51';
  2694. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2695. }/*]*/
  2696. /*]*/
  2697. }
  2698. /*FI*/}
  2699. else {
  2700. /*IF*/if (X291is_reference(a1)) {
  2701. X291to_reference(_actual_type);
  2702. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2703. char b1='\50';
  2704. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2705. }/*]*/
  2706. /*]*/
  2707. r517compile_to_c(C);
  2708. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2709. char b1='\51';
  2710. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2711. }/*]*/
  2712. /*]*/
  2713. }
  2714. else {
  2715. /*IF*/if (X291need_c_struct(a1)) {
  2716. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2717. char b1='\46';
  2718. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2719. }/*]*/
  2720. /*]*/
  2721. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2722. char b1='\50';
  2723. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2724. }/*]*/
  2725. /*]*/
  2726. r517compile_to_c(C);
  2727. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2728. char b1='\51';
  2729. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2730. }/*]*/
  2731. /*]*/
  2732. }
  2733. else {
  2734. r517compile_to_c(C);
  2735. }
  2736. /*FI*/}
  2737. /*FI*/}
  2738. /*FI*/}
  2739. /*No:CALL_INFIX_NEQ.fz_se_cmpt*/
  2740. T0* r517type_boolean(void){
  2741. if (fBC364type_boolean==0){
  2742. T0* R=NULL;
  2743. fBC364type_boolean=1;
  2744. {T707*n=malloc(sizeof(*n));
  2745. *n=M707;
  2746. r707make(n,NULL);
  2747. R=(T0*)n;
  2748. }
  2749. oBC364type_boolean=R;}
  2750. return oBC364type_boolean;}
  2751. /*No:CALL_INFIX_NEQ.static_value*/
  2752. void r517cmp_user_expanded(T517* C,int a1,T0* a2){
  2753. int _mem_id=0;
  2754. /*IF*/if (X291is_dummy_expanded(a2)) {
  2755. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2756. char b1='\50';
  2757. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2758. }/*]*/
  2759. /*]*/
  2760. X662compile_to_c((((T517*)C))->_target/*12*/);
  2761. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2762. char b1='\54';
  2763. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2764. }/*]*/
  2765. /*]*/
  2766. X662compile_to_c(r517arg1(C));
  2767. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2768. char b1='\54';
  2769. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2770. }/*]*/
  2771. /*]*/
  2772. /*IF*/if (a1) {
  2773. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2774. char b1='1';
  2775. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2776. }/*]*/
  2777. /*]*/
  2778. }
  2779. else {
  2780. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2781. char b1='0';
  2782. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2783. }/*]*/
  2784. /*]*/
  2785. }
  2786. /*FI*//*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2787. char b1='\51';
  2788. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2789. }/*]*/
  2790. /*]*/
  2791. }
  2792. else {
  2793. _mem_id=X291id(a2);
  2794. /*IF*/if (a1) {
  2795. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T544* C1=((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/));
  2796. char b1='\41';
  2797. putc(b1,((FILE*)((((T544*)C1))->_output_stream/*4*/)));
  2798. }/*]*/
  2799. /*]*/
  2800. }
  2801. /*FI*//*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms122_470));
  2802. /*]*/
  2803. /*[IRF3.5put_integer*/r544put_integer(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),_mem_id);
  2804. /*]*/
  2805. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms16_841));
  2806. /*]*/
  2807. X662compile_to_c((((T517*)C))->_target/*12*/);
  2808. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms17_841));
  2809. /*]*/
  2810. X662compile_to_c(r517arg1(C));
  2811. /*[IRF3.5put_string*/r544put_string(((T544*)((((T324*)((T324*)(oBC364cpp))))->_current_out/*56*/)),((T0*)ms18_841));
  2812. /*]*/
  2813. }
  2814. /*FI*/}
  2815.  
  2816.